gpt4 book ai didi

c - 使用 fscanf 将文件中的单词存储在数组中

转载 作者:行者123 更新时间:2023-11-30 17:01:16 25 4
gpt4 key购买 nike

我正在尝试为一些类作业编写一个程序,该程序使用 fscanf 读取文件,然后将每个单词存储到一个数组中,每个元素中有一个单词。然后我需要将数组的每个元素打印到控制台上的新行上。

getty.txt 文件包含葛底斯堡地址,具有适当的间距和标点符号,并且是多行的。

我认为正在发生的事情是整个文本都存储在数组的第一个元素中,但我不能 100% 确定,因为我仍在学习用 C 进行调试和编写。

任何关于我做错了什么的建议都会很棒!我目前似乎只得到最后一个词和一些额外的字符。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

void readFile();
void writeFile(char* buffer, int bufferlen);
FILE *fpread;
FILE *fpwrite;

char filebuffer[1000];
int filebufferlen = 0;


int main(int argc, char *argv[]) {
fpwrite = fopen("csis.txt", "w");

readFile();
writeFile(filebuffer, filebufferlen);

fclose(fpwrite);
return 0;
}

void readFile() {
char c;
filebufferlen = 0;

if(!(fpread = fopen("getty.txt", "r"))){
printf("File %s could not be opened. \n", "getty.txt");
fprintf(fpwrite,"File %s could not be opened. \n", "getty.txt");
exit(1);
}

while (!feof(fpread)) {
fscanf(fpread, "%s", filebuffer);
filebufferlen++;
}
}


void writeFile(char* filebuffer, int filebufferlen) {
for (int i = 0; i < filebufferlen; ++i){
printf("%c\n", filebuffer[i]);
}
}

最佳答案

修复编译问题后:

代码不包含任何包含“单词”数组的代码或数据声明。因此,很自然地,除了最后一个单词之外,没有其他任何内容被实际保存,以便可以打印出来。

关于c - 使用 fscanf 将文件中的单词存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com