gpt4 book ai didi

c - 读取每行 3 个字符的文件时,sizeof(char) 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:32 25 4
gpt4 key购买 nike

我正在读取一个名为 data.txt 的文件,如下所示:

b    5
b 2
b 9

每行有 3 个字符:tab 之间的空格。

我有以下代码一次读取一行。

int main(int argc, char * argv[]){
FILE * filePointer;
filePointer = fopen("data.txt", "r");
char singleLine[3*sizeof(char)];

while(!feof(filePointer)){
fgets(singleLine, 3*sizeof(char), filePointer);
//printCharArray(singleLine);
puts(singleLine);
}

fclose(filePointer);
return 0;
}

singleLine 基本上是每行文本放入的缓冲区。我最初让它像 char singleLine[20],一个足够大的任意数字,但我希望它是精确的,所以我做了 char singleLine(3*sizeof(char))。我的逻辑是每行有 3 个字符,所以这应该可行。

遗憾的是没有,运行时打印出来如下:

b 

5

b

2

b

9

当我粗心地使用 char singleLine[20] 时,它会正常工作,如下所示。但我想以正确的方式去做。怎么了?

b    5
b 2
b 9

最佳答案

  1. 您的数组只能容纳两个字符和空终止符。
  2. 您的行有四个字符(包括换行符)。

关于c - 读取每行 3 个字符的文件时,sizeof(char) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386535/

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