我在这里遇到了一个很奇怪的问题。我正在使用fopen和fprintf将句子写到文件中:
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
#include <string.h>
int main (void) {
FILE *fp;
fp = fopen("wageData.txt","w");
fprintf(fp, "Hi, I like pie");
return 0;
}
但是,当我在桌面上打开payData.txt时,绝对没有任何内容。另一方面,如果尝试读取文件,则会得到以下信息:
#include <stdio.h>
int main (void) {
//FILE *fp;
//fp = fopen("wageData.txt","r+");
FILE *c;
if ((c = fopen("wageData.txt","r")) == NULL)
printf("File not available");
else {
char x[3][6];
int i = 0;
while (fgets(x[i], 30, c) != NULL) {
i++;
}
for (i = 0; i < 6; i++) {
printf("%s\n", x[i]);
}
}
return 0;
}
编译后,结果为:
Hi, I like pie
like pie
ie
[?
m?iՖ
logout
[Process completed]
有人可以告诉我这是怎么回事吗?提前致谢。
最佳答案
在读取文件时,您可以执行以下操作-
if ((fp = fopen("wageData.txt","r")) == NULL)
printf("File not available");
else {
char x[100];
//int i = 0;
while (fgets(x,100, fp) != NULL)
{
printf("%s\n", x);
}
}
fclose(fp);
然后,如果您想用多个字符串来打断句子,可以使用
sscanf
-http://www.tutorialspoint.com/c_standard_library/c_function_sscanf.htm