Я просмотрел некоторые вопросы «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 не открывая текстовый файл я предоставить ему на CMD линии, и хранить его в массив темп?
Почему Fgets пропускается в статусе «else», если файл не указан?
- Почему печать прерывается в обоих случаях?
Эй, кстати, спасибо вам большое за помощь. Если вы знаете аналогичный вопрос, который был задан, можете ли вы опубликовать его в комментариях, чтобы я мог его прочитать.
Ваш 'fopen' выглядит хорошо для меня - вы уверены, что файл существует? Вы используете файловую систему с учетом регистра? – Dai
Извините, я не верю, что да, и да, мой друг, он находится на рабочем столе вместе с моим кодом. @Dai –
Что вы вводите, и какой результат вы видите? –