2014-02-04 3 views
0

Итак, у меня есть код для сравнения строки из файла с пользовательским вводом, который был проверен ошибкой для удаления пробелов.Использование puts в файле

char text[100]; 
int c = 0; 
int d = 0; 
char string[100]; 

void space(void); 

int main(/*int argc,char *argv[]*/) 
{ 
    int count = 1; 
    char wd[20], word[20]; 
    FILE *fp; 

    fp = fopen("Student Usernames.txt", "r"); 
    if (fp == NULL) 
    { 
    printf("given file doesn't exist"); 
    getch(); 
    } else 
    { 
    printf("Enter the word to search: "); 
    gets(text); 
    space(); 

    fscanf(fp, "%s", wd); 
    while (!feof(fp)) 
    { 
     if (strcmp(string, wd) == 0) 
     { 
     printf("%s found in the file. the given word is the %d word in the file", 
       word, count); 
     count = 0; 
     break; 
     } else 
     { 
     fscanf(fp, "%s", wd); 
     count++; 
     } 
    } 
    if (count != 0) 
    { 
     printf("given word is not found in the file"); 
    } 
    getch(); 
    } 
} 

void space(void) //Prototype stage, w/o semi colon 
{ 
    while (text[c] != '\0') 
    { 
    if (!(text[c] == ' ' && text[c] == ' ')) 
    { 
     string[d] = text[c]; 
     d++; 
    } 
    c++; 
    } 
    string[d] = '\0'; 
    c = 0; 
    d = 0; 

    getch(); 
} 

Существует небольшая проблема, однако, когда я иду вперед, чтобы показать код, это даст некоторый случайный мусор, как слово, которое находится в файле,
, например: Input: П р е л. Программа превращает A p p l e в Apple. Выход:%^& $ £ $%^&

Кто-нибудь знает, что случилось? Редактировать: текст добавлен.

+1

Я не думаю, что этот код компилируется. Переменная «text» используется, но никогда не определяется. – Stuart

+0

'void space (char *);' будет прототипом. 'void space (char * text) {' будет открытием функции. И в чем смысл 'text [c] == '' && text [c] == '''? –

+0

'word [20]' никогда не получает значения, но все же печатается. – chux

ответ

0
printf("%s found in the file. the given word is the %d word in the file", 
                   word, count); 

В выше Printf печати word, который не назначен в любом случае в вашем коде вместо этого просто напечатать wd строку.

-1

Хахаха, оказывается, что вывод должен быть строкой, а не словом, проблема решаемая

+0

Возможно, вы захотите опубликовать все решение, а затем примите свой ответ по порядку. –

Смежные вопросы