从文本文件中读取输入并在C

时间:2017-11-16 04:44:22

标签: c text-files

我如何使用文本文件中的输入,以便我可以在函数中使用它,而不将字符保存到数组中?当我从文本文件中读取时,将出现1,我将转到" setParameters",在那里我将输入其余的参数。同样在该函数中,我将使用malloc。(如果它没有意义让我知道,以便我可以澄清它,我也是C的新手)

int val;
int choice;
 FILE *fpointer;
fpointer = fopen("afile.txt","r");
printf("\nError Detection/Correction");
printf("------------------------------\n");

choice = fscanf(fpointer,"%d",&val);
while(choice != 3)
{
    printf("1. Enter Parameters\n2. Enter Hamming Code\n3. Quit\n");
    switch(choice)
    {
        case 1: setParameters();
            break;

        case 2: checkError();
            break;

        case 3: printf("*** Program Terminated Normally");
            break;

        default: 
            printf("Not a valid entry");
        break;

    }//end of switch statment 

1 个答案:

答案 0 :(得分:0)

从C中的文件中获取输入(使用fscanf):

您需要使用fopen初始化FILE指针,然后使用fopen扫描每个输入。

FILE *fpointer;
fpointer = fopen("afile.txt","r");
int ret;
while(ret = fscanf(fpointer," %d ",&val))
{
     if(ret == EOF)
     {
          break;
     }
     else
     {
         // use val variable here in code which is taken as input from file
     }
}

这里,了解ret变量是很重要的:

  • EOF,如果指针到达文件末尾。
  • 0,如果没有输入与变量匹配
  • > 0,带文件输入的匹配变量数

从C ++中的文件中获取输入(使用fstrean):

从文件中获取输入非常容易。我们只需要更改cin以从文件流而不是标准输入获取输入。

#include <fstream.h>

void main() {
    ifstream cin("afile.txt");
    int val;
    cin  >> val;

    // use val as variable in code.
}

这种方法非常简单,但只适用于C ++。它不需要像fscanf那样的文件操作。只是改变cin将完成工作:)