У меня есть программа, которая позволяет пользователю добавлять текстовый файл среди других функций, но я только что показал 2, чтобы это было просто. Проблема в том, когда пользователь выбирает, скажем, вариант №. 1, «Добавить» & «Ввести предложение:» получается отлично, но программа завершает работу, то есть до того, как пользователь может ввести предложение, он завершает работу. Как это исправить ? (я попробовал простой пример с Scanf & PRINTF заявления, которые работают, но здесь я работаю с файлом, и я не в состоянии получить необходимые входные!)C программа завершает работу перед принятием ввода
int main()
{
int choice;
char c[2000];
FILE *fp;
printf("Welcome to my Text Editor!\n");
printf("Enter the letter for the operation that you would like to carry out on the file\n");
printf("1 - Append a word to end of file\n");
printf("2 - Search for a word in the file\n");
scanf ("%d", &choice);
if (choice == 1)
{
printf ("Append\n");
fp=fopen("C:/Users/Asim/Desktop/random.txt","a");
if(fp==NULL){
printf("Error!");
exit(1);
}
printf("Enter a sentence:\n");
gets(c);
fprintf(fp,"%s",c);
fclose(fp);
}
else if (choice == 2)
{
printf ("Search");
}
else
{
printf ("Invalid choice!");
}
}
Ваш сканер сохраняет \ n в буфере, замените его с помощью getc, возможно, изменив выбор на char? – Gar
Некоторый аромат этого вопроса был задан тысячу раз раньше, пожалуйста, сделайте некоторое исследование, прежде чем спрашивать. Также, пожалуйста, не используйте get, эта функция была отмечена устаревшей в течение последних 17 лет. Почему вы изучаете C из источников старше 17 лет? – Lundin