У меня есть документ с некоторым номером телефона и andresses. Теперь я попытаюсь скопировать числа в одной части структуры и адреса в другую. На данный момент я был просто в состоянии получить данные документа, но я не могу поставить его в моей структуры, пожалуйста, помогите мнеКак отрезать строку в C
C код
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct telefon{
char nummer[16];
char adresse[128];
};
typedef struct telefon TELEFON;
void main()
{
TELEFON tel;
char buffer[256];
FILE *fp;
int i = 0;
int countSemi = 0;
fp = fopen("Telefondatei.txt", "r");
if(fp == NULL)
{
printf("Datei konnte nicht geoeffnet werden.\n");
}
else{
while(fgets(buffer,1000,fp) != 0){
//printf("%s\n",buffer);
while(buffer != 0){
i++;
if(buffer[i] == ';'){
countSemi++;
}
while(countSemi <= 7){
strcpy(tel.adresse,buffer);
printf("%s\n %d \n",tel.adresse,countSemi);
}
}
}
}
}
Пример для данных в моем .txt документе
"Фирма"; ""; "Auto GmbH", "Гассе 3", "5000", "ПН"; ""; "0456", "45652" "Фирма"; "";» ADAC ";" ";" 50000 ";" Mon ";"; "2156"; "545218"
1) Если буфер 256 байт, почему вы хотите прочитать 1000 в 'fgets () '? 2) Почему буфер должен стать NULL в следующем цикле while? - В конце концов вы хотите снова прочитать документы для 'fgets()'? –
вы полны с 1000 байтами, которые просто бесполезны. Мой учитель объяснил нам, когда документ заканчивается, а fgets возвращает null – alovaros
Какие поля в вашем файле с разделителями разделенных точкой соответствуют номеру телефона и по адресу? Вы ожидаете сохранить точки с запятой между разделами адреса? Если нет, что вам нужно - новые линии, пробелы, что-то еще? Обратите внимание, что 'main()' обычно должен возвращать 'int' - см. [Что должно быть' main() 'return in C и C++?] (Http://stackoverflow.com/questions/204476/what-should-main- return-in-c-and-c/18721336 # 18721336). –