因此,我尝试将多个[int tabspace int tabspace string]
文件中的数据读入单个数组,但即使使用单个文件也无法使该程序正常工作。输入文件的格式为004 78 inmW (tabspace between the entries)
006 89 inmW
,例如
int main()
{
int i=0;
int HR[50];
int BPD[50];
int BPS[50];
float BT[50];
int HR_Time[50];
int BT_Time[50];
int BP_Time[50];
char buffer[100];
char temp[10];
FILE *HRfile;
HRfile=fopen("HR_1.txt","r");
if(HRfile == NULL)
{
printf("Failed to open patient info file.\n");
exit(1);
}
while(fscanf(HRfile,"%d %d", &HR_Time[i], &HR[i])!=EOF)
{
i++;
}
fclose(HRfile);
HRfile=fopen("HR_2.txt","r");
if(HRfile == NULL)
{
printf("Failed to open patient info file.\n");
exit(1);
}
while(fscanf(HRfile,"%d %d", &HR_Time[i], &HR[i])!=EOF)
{
i++;
}
fclose(HRfile);
printf("%d %d", HR[2],HR_Time[2]);
return 0;
}
我希望能够将两个数字读取到一个单独的数组中,并忽略最后的字符串。到目前为止,我使用以下代码为第一个文件执行此操作,但似乎无法正确读取第一个条目。我还没能找到关于如何处理每个条目中不需要的字符串的任何内容。
printf
我使用http://jsfiddle.net/6khr8e2b/
语句确保通过打印数组值来读取文件。
但是,我的结果只是一个空白的命令提示符,其中绝对没有任何内容。
答案 0 :(得分:0)
如果数组足够大以捕获最长的行,fgets
将读取每行直到并包括换行符。 while将在文件末尾终止
使用sscanf
从行的开头读取两个整数
检查i
是否未超过整数数组的存储空间。
char line[100] = "";
while(fgets ( line, sizeof line, HRfile))
{
if ( 2 == sscanf(line,"%d %d", &HR_Time[i], &HR[i]))
{
i++;
if ( i >= 50) {
break;
}
}
}