0
我在與一個人的最初的字符存儲到與被構造爲一個文件中的字符數組(串)的問題
AB Albert Bumble
FG Fred Goofoff
GF Gary Flintstone
DD Donald Duck
char finitlett [MAX]將存儲首字母縮寫的所有首字母,AFG D. char sinitlett [MAX]將存儲首字母縮寫的所有首字母,BGF D.
問題是當我打印strlen(finitlett )該數字大於文件中的條目數量。
這是我創建檢索條目,並把它們放入數組的代碼如下:
void readf(char finitlett[], char sinitlett[], char name[][80])
{
char fileName[20] = "text.dat";
FILE*inFile = NULL;
inFile = fopen(fileName, "r");
if (inFile == NULL)
{
printf("Error in opening the file %s\n", fileName);
exit(0);
}
int i = 0;
while(fscanf(inFile, "%c%c%80[^\n]\n", &finitlett[i], &sinitlett[i], &name[i]) != EOF){
printf("Initials : %c%c | Name : %s\n", finitlett[i], sinitlett[i], name[i]);
i++;
}
fclose(inFile);
printf("Number of entries: %d\n", i);
printf("Length of array: %d\n", strlen(finitlett));
printf("Length of array: %d\n", strlen(sinitlett));
}
對不起,它沒有正確出來,該文件包含換行條目。 – roxxar
'strlen()'返回'size_t'類型的結果。 'printf'的''%d''格式需要一個'int'類型的參數。你應該使用'strlen()'調用,或者使用'size_t'格式的'%zu'(舊的實現可能不支持'「%zu」')。 –