Компилятор как будто не видит scanf, а fgets выполняет перед printf, хотя расстановка абсолютно другая - C (СИ)
Формулировка задачи:
В-общем, тема такая: читаю учебник, написано создать прогу для поиска текста в массиве строк. Создал поисковик песен. Все работало, решил усовершенствовать, и добавил туда функцию многократного выполнения поиска, пока пользователь не введет 0. Тут то и началиь проблемы. Компилятор никак не хочет видеть scanf, а fgets выполняет первее printf! Компилятор MinGW, Среда разработки - NetBeans.
Код:
/*
* File: main.c
* Author: Башка
*
* Created on 19 августа 2014 г., 21:29
*/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
char tracks[][80] = {
"One Love One Heart",
"Clap And Rob Em",
"Wild For The Night",
"Bottle and the gun",
"Recep Tayyip Erdogun",
};
void song_search(char* usertrack) {
int i;
for(i = 0; i < 5; i++) {
if (strstr(tracks[i], usertrack)) {
printf("Song number: %i: %s\n", i, tracks[i]);
}
};
}
/*
*
*/
int main() {
int ques;
ques = 1;
char usertrack[80]; // Создаем строку, в которую пользователь будет вводить искомый текст
do
{
printf("%s", "Enter Text:\n");
fgets(usertrack, 80, stdin); // Пользователь вводит текст для поиска в тексте
usertrack[strlen(usertrack)-1] ='\0';
song_search(usertrack);
puts("Do you want to find one more song?");
scanf("%i", ques);
}
while(ques = 1);
return(0);Решение задачи: «Компилятор как будто не видит scanf, а fgets выполняет перед printf, хотя расстановка абсолютно другая»
textual
Листинг программы
scanf("%i", &ques);
getchar();
Объяснение кода листинга программы
- Вводится целочисленная переменная
quesс помощью функции scanf. - Происходит считывание символа новой строки с помощью функции getchar, которая получает символ, введенный пользователем.