gpt4 book ai didi

c - 将文件中每行的前 3 个字符读入字符串数组

转载 作者:行者123 更新时间:2023-11-30 18:12:39 25 4
gpt4 key购买 nike

我必须将文件中每行的前三个字符读入字符串数组。为什么这不起作用?

int getName(FILE *inFile, char name[MAX][4]){

char *line = NULL;
char *word = NULL;
int counter=0;

while(fgets(line,sizeof(line),inFile) != NULL){

sscanf(line, "%c%c%c\n", word);
strcpy(name[counter], word);
counter++;
}
return counter;
}

最佳答案

这一行:sscanf(line, "%c%c%c\n", word);这是请求读取 3 个单字符值并将每个值放入其自己的变量中,但是您只在 (word) 中传递一个变量。你需要有 3 个。所以发生的情况是 scan 将后两个字符写入内存中的地址,该地址由 word 参数之后堆栈上的任何内容所指向。

我稍微修改了您的例程来解决此问题。

int getName(FILE *inFile, char name[MAX][4]){

char *line = NULL;
char word [4] = {0};
int counter=0;

while(fgets(line,sizeof(line),inFile) != NULL){

sscanf(line, "%c%c%c\n", &word[0], &word[1], &word[2]);
strcpy(name[counter], word);
counter++;
}
return counter;
}

关于c - 将文件中每行的前 3 个字符读入字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070765/

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