我在發帖之前查看了一些「FGETS」問題,並且我收集的是可能是一個新行字符,這會導致手動輸入問題。以兩種方式使用Fgets
int main (int argc, char *argv[]){
char temp[1000];
FILE *user_file;
printf("Starting....\n"); //Used for user visual.
if(argc == 2){ //open file
user_file = fopen(argv[1],"r");
if(user_file == NULL){
printf("No file was found.");
exit(2);
}else{
fgets(temp,strlen(temp),user_file);
}
}else if(argc > 2){ // Will exit if arguments are greater than 2.
printf("Maximum args 2.\n");
exit(1);
}else{
printf("File was not provided, please enter the text to convert.\n"); //If the user doesnt provide a file allow manual input.
fgets(temp,strlen(temp),stdin);
}
printf("%s\n",temp);
return 0;
}//End main
問題:
爲什麼不與fgets打開txt文件,我向它提供的CMD線,並將其存儲到臨時數組?
如果未提供文件,爲什麼在「其他」語句中跳過Fgets?
- 爲什麼在兩種情況下都會跳過打印?
嘿,順便謝謝你的幫助。 如果您知道一個已被問過的類似問題,您可以將它發佈在評論中,以便我可以閱讀它。
你'fopen'看起來不錯,我 - 你確定文件是否存在?你在使用區分大小寫的文件系統嗎? – Dai
對不起,我不相信我是,是的我的朋友,它與我的代碼文件一起在桌面上。 @戴 –
你給它的輸入是什麼,你看到的輸出是什麼? –