我在将一行字符转换为C中的int数组时遇到问题。我正在从文件中读取行,其中一行是由逗号和空格分隔的数字。我有一个循环检查所有字符,如果它是一个数字,它将它放在一个单独的数组,如果不是它只是继续。但是,输出似乎根本不正确。以下是我的代码。
#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE 200
#define SIZE 10
#define FILENAME "file.txt"
char *trimwhitespace(char *str)
{
char *end;
// Trim leading space
while(isspace(*str)) str++;
if(*str == 0) // All spaces?
return str;
// Trim trailing space
end = str + strlen(str) - 1;
while(end > str && isspace(*end)) end--;
// Write new null terminator
*(end+1) = 0;
return str;
}
int main(void)
{
//disable output buffering on standard output.
setbuf( stdout, NULL );
int array [SIZE];
FILE *dataFile;
char buffer[BUFSIZE];
int lineNo = 0;
int x= 0;
char gc[BUFSIZE];
//open the file
puts("opening file");
dataFile = fopen( FILENAME, "r" );
if( dataFile == NULL )
{
fprintf( stderr, "file not found " );
return 1;
}
puts("reading file");
while( !feof( dataFile ) )
{
fgets( buffer, BUFSIZE, dataFile );
++lineNo;
strcpy( gc,trimwhitespace( buffer ) );
int y = 0;
for( int i = 0; i < BUFSIZE; i++ )
{
if( isdigit( gc[i] ) )
{
int array[y];
printf("%d ", array[y]);
y++;
}
else if( gc[i] == " " || gc[i] == NULL )
{
continue;
}
}
printf("\n");
}
fclose( dataFile );
return 0;
}