作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 C 语言项目,它告诉我读取一个文件并将每一行保存在字符串表 stateTable[10][50] 中,但我不知道该怎么做,有人可以帮助我吗?我现在想到的是:
int i=0,j=0,x=10,y=50;
char stateTable [ 10 ][ 50 ];
static const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{
while ( fgets ( stateTable[i], y , file ) != NULL )
{
i++;
}
fclose ( file );
}
else
{
perror ( filename );
}
return 0;
虽然我不知道将stateTable[i]放在gets中是否正确,如果是的话,保存在stateTable[10][50]中的每个字符串末尾都会有\0吗?
最佳答案
#include <stdio.h>
#include <string.h>
int main(void)
{
int j, i = 0;
const int y = 50, x= 10;
char stateTable [ x][ y ];
const char filename[] = "file.txt";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{
while ( fgets ( stateTable[i], y , file ) != NULL )
{
i++;
if (i > x)
break;
}
fclose ( file );
}
else
{
perror ( filename );
}
for (j=0 ; j < i; j++)
{
printf ( "\nstateTable[j] %s len = %zu",
stateTable[j], strlen (stateTable[j]));
}
printf ("\n");
return 0;
}
从最后的 printf 语句可以看出,代码是有效的。
strlen 显示\0 已插入。
请注意 fgets 保留字符串中的换行符。
关于c - 如何将文件的行保存在字符串表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948208/
我是一名优秀的程序员,十分优秀!