Получить от пользователя фамилию и вывести из этого файла инициалы и год рождения этого человека - C (СИ)
Формулировка задачи:
Здравствуйте. Имеется файл, из которого считываются строки вида
Требуется получить от пользователя фамилию и вывести из этого файла инициалы и год рождения этого человека. Что сделано: построчное считывание из файла при помощи
Ivanov A.A. 1234.
fgets
, разбиение строки при помощиstrtok
. Не работает толькоstrcmp
из условия: допустим, ввожу 'Ivanov' и(по идее) условие должно выполняться только тогда, когда ps будет равен 'Ivanov', но оно выполняется ВСЕГДА. Где я напутал, есть какие-нибудь идеи? спасибо.#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char str[256]={0}, name[256]={0};
char *ps={0};
int year=0;
FILE *f=fopen("input.txt", "r+");
scanf("%s", name);
while(!feof(f))
{
fgets (str , 256 , f);
ps = strtok (str,".");
while (ps != NULL)//
{
if((strcmp(name, ps))!=0)
{
printf("%s\n",ps);
}
ps = strtok (NULL, ".");
}
}
fclose(f);//закрываем файл
getch();
return 0;
}Решение задачи: «Получить от пользователя фамилию и вывести из этого файла инициалы и год рождения этого человека»
textual
Листинг программы
printf( "\"%s\"\n", s );
Объяснение кода листинга программы
- Вводится фамилия с помощью функции scanf.
- Фамилия сохраняется в переменной s типа char.
- Выводится фамилия с помощью функции printf.