如何从文本文件中读取 min/max 个变量?
How to read min/max variables from a text file?
我希望能够设置 min/max 范围并在从文件中读取值时使用它来检查 valid/invalid 输入。
我在第一行的最小值和最大值分别是 1 和 10。这是我要测试的文本文件(num.txt):
1 10
2
4
5
在这个程序中,我想使用fscanf(stdin , ...)
:
fscanf( stdin, "%d%c", &num, &c );
如何阅读第一行并检查它的最小值和最大值,然后继续阅读以下行?
要读取文件,您可以这样做 -
FILE *fp;
fp=fopen("num.txt","r"); // check its return .
fscanf(fp,"%d %d",&min,&max);
要继续阅读更多值,您可以在循环中使用 fscanf
-
while(fscanf(fp,"%d",&variable)==1){ // on success fscanf return 1 here, till fscanf is successful loop will iterate
// do you operations
}
在程序中硬编码文件名:
#include <stdio.h>
int main(int argc, char**argv)
{
int min, max;
FILE *fp;
fp = fopen( "num.txt", "r");
if( fscanf( fp,"%d %d", &min, &max) != 2) // Read Min/MAX from file
return -1; // wrong input file
int val;
while( fscanf( fp, "%d", &val) == 1 ) //check if new values in range
if(val<min || val>max)
printf( "Invalid INPUT: Value %d is not in (%d, %d) range", val, min, max);
fclose( fp);
return 0;
}
使用控制台的输入重定向shell
#include <stdio.h>
int main(int argc, char**argv)
{
int min, max;
if( fscanf( stdin,"%d %d", &min, &max) != 2) // Read Min/MAX from file
return -1; // wrong input file
int val;
while( fscanf( stdin, "%d", &val) == 1 ) //check if new values in range
if(val<min || val>max)
printf( "Invalid INPUT: Value %d is not in (%d, %d) range", val, min, max);
return 0;
}
我希望能够设置 min/max 范围并在从文件中读取值时使用它来检查 valid/invalid 输入。
我在第一行的最小值和最大值分别是 1 和 10。这是我要测试的文本文件(num.txt):
1 10
2
4
5
在这个程序中,我想使用fscanf(stdin , ...)
:
fscanf( stdin, "%d%c", &num, &c );
如何阅读第一行并检查它的最小值和最大值,然后继续阅读以下行?
要读取文件,您可以这样做 -
FILE *fp;
fp=fopen("num.txt","r"); // check its return .
fscanf(fp,"%d %d",&min,&max);
要继续阅读更多值,您可以在循环中使用 fscanf
-
while(fscanf(fp,"%d",&variable)==1){ // on success fscanf return 1 here, till fscanf is successful loop will iterate
// do you operations
}
在程序中硬编码文件名:
#include <stdio.h>
int main(int argc, char**argv)
{
int min, max;
FILE *fp;
fp = fopen( "num.txt", "r");
if( fscanf( fp,"%d %d", &min, &max) != 2) // Read Min/MAX from file
return -1; // wrong input file
int val;
while( fscanf( fp, "%d", &val) == 1 ) //check if new values in range
if(val<min || val>max)
printf( "Invalid INPUT: Value %d is not in (%d, %d) range", val, min, max);
fclose( fp);
return 0;
}
使用控制台的输入重定向shell
#include <stdio.h>
int main(int argc, char**argv)
{
int min, max;
if( fscanf( stdin,"%d %d", &min, &max) != 2) // Read Min/MAX from file
return -1; // wrong input file
int val;
while( fscanf( stdin, "%d", &val) == 1 ) //check if new values in range
if(val<min || val>max)
printf( "Invalid INPUT: Value %d is not in (%d, %d) range", val, min, max);
return 0;
}