我有一個帶有一些電話號碼和女主角的文檔。 我現在嘗試將結構和地址的一部分中的數字複製到另一部分中。 目前,我只是能夠得到文件的數據,但我不能把它放在我的結構,請幫我如何在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文件
「豐資本」; 「」; 「汽車有限公司」; 「gasse 3」, 「5000」, 「星期一」, 「」, 「0456」, 「45652」 「豐資本」; 「」;」 ADAC「;」「;」50000「;」Mon「;」「; 2156」;「545218」
1)如果緩衝區爲256個字節,你爲什麼要在'與fgets讀1000( )'? 2)爲什麼緩衝區在下面的'while'循環中應該變爲NULL? - 最終你想再讀一遍'fgets()'的文檔? –
你完全是1000字節,只是無用的。 我的老師在文檔結束時向我們解釋了fgets返回null – alovaros
您的分號分隔值文件中的哪些字段對應於電話號碼以及哪個地址對應?你期望在地址的各個部分之間保留分號嗎?如果不是,你想要什麼 - 換行符,空格,還有其他的東西?請注意,'main()'通常應該返回一個'int' - 參見[main()應該在C和C++中返回什麼?](http://stackoverflow.com/questions/204476/what-should-main- return-in-c-and-c/18721336#18721336)瞭解詳情。 –