我目前正在尝试做一些我在 C++ 中做过几十次的事情,但这是我第一次在 C 中做这件事。
我有一个包含 3 列的巨大文本文件: hexNumber unsignedChar int
adam 38 1
john 39 1
sara 3a 1
frank 3b 0
Christopher 3c 0
kate 3d 0
但是,就像我说的那样,文件很大,并且由于某种原因之间的空格会有所不同。我不知道,我没有制作文件。我理解它的方式 fscanf 由空格分隔,所以任何数量都应该没问题,对吧?
我正在尝试将其读入结构数组,这是我的代码:
typedef struct node {
unsigned char myHex;
char* myString;
int myInt;
} node;
void foo(bar* c){
if( c == NULL )
return;
struct node nArr[205] ;
//read in opcode information
FILE *fp;
fp = fopen( "input.txt" , "r" );
if ( fp == NULL ) {
fprintf( stderr, "Can't open input file file.txt!\n");
exit(-1);
}
int it = 0;
while( !feof( fp ) ){
fscanf( fp , "%s%s%d\n" , nArr[it].myString ,
&nArr[it].myHex , &nArr[it].myInt );
}
...
然而,当我读到它时,我会被空白淹没。打印出来显示:
myHex:
myInt: 0
myString: (null)