所以我打印字符的文件,每當行結束它只是做一些奇怪的事情。打印字符到文件給出奇怪的結果
這是我使用的代碼:
void opdracht43() {
FILE *file;
FILE *file2;
file = fopen("opdracht1.1.cpp", "r");
file2 = fopen("Disc.c", "w");
int p;
char a[100];
while (fgets(a, 100, file)) {
for (int i = 0; i < sizeof a; i++) {
if (a[i] == '\n' || a[i] == ' ' || a[i] == '\t') {
printf("TRUE");
}
else {
printf("FALSE");
fputc(a[i], file2);
}
}
return 0; //So it only prints the 1st line for now.
}
fclose(file);
fclose(file2);
}
而當它運行,這是它賦予文字:
#include<stdio.h> ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ
之間>我的空間給我在記事本中一個奇怪的黑色NUL ++
該文件的第一行是:
#include<stdio.h>
我希望我可以在這裏找到一些幫助:)
將其寫入「Disc.c」總是試圖輸出100個字節(跳過空格)。但是當輸入中遇到'\ 0'時,你應該跳出for循環,因爲這標誌着'fgets'讀取的結尾。否則,你正在輸出過去有效的輸入,因此垃圾結果。 – kaylum
擴展@kaylum評論,'我
'for(int i = 0; i'for (size_t i = 0; a [i]; i ++){' –
chux