【发布时间】:2014-12-11 18:27:56
【问题描述】:
如果要求用户写文件名,我想写代码。然后我想分析一个符号的文件内容,比如说'e'。
我的问题是我不知道如何以正确的方式开始分析文件以便检查内容。
int main() {
char c[1000], file_name[1000];
int i;
int s = 0;
FILE *fp;
printf("Enter the name of file you wish to see\n");
gets(file_name);
if ((fp = fopen(file_name, "r")) == NULL){
printf("Error! opening file");
exit(1);
}
if (fp) {
while (fscanf(fp, "%s", c) != EOF) {
printf("%s", c);
}
fclose(fp);
for (i = 0; c[i] != '\0'; ++i) {
puts(c);
if (c[i] == 'e') {
++s;
}
}
printf("\nWhite spaces: %d", s);
_getche();
return 0;
}
}
【问题讨论】:
-
“写”是指“读”吗?
-
将文件的内容保存为字符串,这样我就可以运行 c[i]
-
您需要一个 char* 来存储所有内容。然后,在你的 while 循环中,执行
strcat(myFullString, c);这会将新内容附加到“myFullString”数组中,然后你就可以在你的 for 循环中使用 is 看看这个例子:programmingsimplified.com/c-program-concatenate-strings -
如果我理解正确,我必须添加一个字符指针吗?非常抱歉,我对 C 和编程非常陌生,但我对它充满热情。
-
您在寻找
fread()吗? cplusplus.com/reference/cstdio/fread 试试fread(c,sizeof(char),1000,fp);请记住,在这种情况下,c是一个字符数组,而不是字符串。如果您希望c保留字符串:fread(c,sizeof(char),999,fp);c[999]='\0';