我想在文本文件中读取一些固定长度的字符串并将它们存储在一个数组中。 我读取字符串的方式是fscanf(fp,"%c",& char []);
但是,由于数据是由空格分隔的,我希望数组索引指示每个字符串而不是每个字符。
我该怎么做?我应该使用call amrit
一定长度而不是fgets()
吗?
感谢
fgetc()
答案 0 :(得分:1)
使用fgets()
从文件读取的简单示例#include <stdio.h>
#include <stdlib.h>
#define LINE_LENGTH 6
int main(int argc, char** argv)
{
int i = 0;
FILE *file_ptr;
char *string=(char*)calloc(LINE_LENGTH,sizeof(char));
file_ptr = fopen("file.txt", "r");
while(1)
{
if(fgets(string, LINE_LENGTH, file_ptr) == NULL)
break;
fgetc(file_ptr);
printf("\nline[%d] = %s\n", i+1, string);
i++;
}
fclose(file_ptr);
return 0;
}
file.txt的
12344 45678 99870 33389 11234
答案 1 :(得分:0)
确定row
和col
时
按以下方式分配:
char (*jz)[col][keyLength] = malloc(row * col * keyLength);//meant char jz[row][col][keyLength]
从文件中读取:
for(i = 0; i < row; ++i){
for(j = 0; j < col; ++j){
fscanf(fp, "%s", jz[i][j]);
}
}
打印矩阵:
for(i = 0; i < row; ++i){
for(j = 0; j < col; ++j){
if(j)
putchar(' ');
printf("%s", jz[i][j]);
}
putchar('\n');
}