C 将文本文件扫描到数组中?
我有一个文本文件,我们叫它numbers.txt,我需要把它扫描成一个数组 number.txt(下面是内部内容) 特殊值-1表示列表结束 我有点搞不清楚如何把它放到我的数组中。我知道我需要一个环,但我不能把我的头围绕它。另外,我不是在程序中扫描文件,而是在终端中进行扫描 taylor>文件C 将文本文件扫描到数组中?,c,arrays,C,Arrays,我有一个文本文件,我们叫它numbers.txt,我需要把它扫描成一个数组 number.txt(下面是内部内容) 特殊值-1表示列表结束 我有点搞不清楚如何把它放到我的数组中。我知道我需要一个环,但我不能把我的头围绕它。另外,我不是在程序中扫描文件,而是在终端中进行扫描 taylor>文件
int main()
{
int numbers[50];
int n, i;
//scanf("%i", &n)
for(i = 0; i < 50; i++)
{
//not sure what to do
}
}
intmain()
{
整数[50];
int n,i;
//scanf(“%i”、&n)
对于(i=0;i<50;i++)
{
//不知道该怎么办
}
}
OP需要考虑许多停止条件
而(!=-1)
运行循环一样。我也可以使用if语句来完成。”。这可以通过测试读取的值来检测scanf()
的EOF
返回值来检测scanf()
的EOF
返回值来检测scanf()
返回值0来检测int
范围内。下面未显示对此的检测'\n'
。下面未显示对此的检测 int main()
{
int numbers[50];
int i = 0;
for( ; i < 50; i++) {
int n;
int conversion_count = scanf("%i", &n);
if (conversion_count != 1) {
break; // End-of-file, input error, non-numeric input
}
if (n == -1) {
break;
}
numbers[i] = n;
}
printf("%d numbers read.\n", i);
}
intmain()
{
整数[50];
int i=0;
对于(;i<50;i++){
int n;
int conversion_count=scanf(“%i”&n);
如果(转换计数!=1){
break;//文件结尾,输入错误,非数字输入
}
如果(n==-1){
打破
}
数字[i]=n;
}
printf(“读取%d个数字。\n”,i);
}
发布的代码无法编译!它缺少#include
语句
以下是代码的一个版本:
#include
语句-1
时退出读取循环 #include <stdio.h> // scanf(), perror()
#include <stdlib.h> // exit(), EXIT_FAILURE
#define MAX_NUMBERS 50
int main( void )
{
int numbers[ MAX_NUMBERS];
int i;
//scanf("%i", &n)
for(i = 0; i < MAX_NUMBERS; i++)
{
if( 1 != scanf( "%d", &numbers[i] ) )
{
perror( "scanf for number failed" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
if( -1 == numbers[i] ) break;
}
}
#包括//scanf()、perror()
#包括//退出(),退出失败
#定义最大值为50
内部主(空)
{
整数[最大值];
int i;
//scanf(“%i”、&n)
对于(i=0;i
Afgets
和sscanf
组合出现在脑海中…(Welp,你正在做输入重定向,nvm)这样更好,我删除了我的答案。谢谢你们两位的帮助。
#include <stdio.h> // scanf(), perror()
#include <stdlib.h> // exit(), EXIT_FAILURE
#define MAX_NUMBERS 50
int main( void )
{
int numbers[ MAX_NUMBERS];
int i;
//scanf("%i", &n)
for(i = 0; i < MAX_NUMBERS; i++)
{
if( 1 != scanf( "%d", &numbers[i] ) )
{
perror( "scanf for number failed" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
if( -1 == numbers[i] ) break;
}
}