如何在C中向txt文件写入多行

如何在C中向txt文件写入多行,c,validation,C,Validation,我正在尝试编写一个C程序,验证从txt文件读取数字的SIN 我有一个函数(我们称之为“validate”),它从文件中读取并验证它。 然后我得到了一个main函数,如果我的validate函数返回0,那么SIN是有效的,否则它不是。现在我不知道如何将结果写入txt文件 编辑-我让它与以下代码一起工作。但我将输出写入一个新文件。我想将输出写入读取它们的同一个文件 int main () { int p,i,n1; FILE *filenumbers; filenumbe

我正在尝试编写一个C程序,验证从txt文件读取数字的SIN

我有一个函数(我们称之为“validate”),它从文件中读取并验证它。 然后我得到了一个main函数,如果我的validate函数返回0,那么SIN是有效的,否则它不是。现在我不知道如何将结果写入txt文件

编辑-我让它与以下代码一起工作。但我将输出写入一个新文件。我想将输出写入读取它们的同一个文件

int main ()
{
    int p,i,n1;


    FILE *filenumbers;
    filenumbers = fopen("A3_260568619.txt", "r");
        //open the file containing SINs
    FILE *filenumbersresult;
    filenumbersresult = fopen("Results.txt", "w");
        //Open a file to write the results

    if(filenumbers==NULL)
    {
        printf("Error!");
        exit(1);
    }

    while (fscanf(filenumbers, "%d", &n1) !=EOF)
    {
        p = validate(i,n1);

        if (p == 0) //If validate function is 0 then the SIN is valid
                    //otherwise, it is not valid
        {
            fprintf(filenumbersresult, "%d is valid\n", n1);
        }

        else
        {
            fprintf(filenumbersresult, "%d is not valid\n", n1);
        }
    }

    fclose(filenumbers);
    fclose(filenumbersresult);
    return 0;
}

从您的问题描述中,我想知道问题是否不是以调用validation()的方式出现的,即在没有故障安全退出标准的循环中。当然我不能确定,因为您没有显示该部分:)我发布了我的全部代码,让您看到写入同一文件的最简单方法是写入另一个文件,然后移动它。使用同一个文件作为输入和输出存在一些不直观的问题。它同意@uʍopǝpısdn,指出您需要担心您在文件中的位置。它没有明确提到的是,当你写一个字符时,它会覆盖已经存在的字符,除非你已经在文件的末尾。您需要更改文件行的长度。这似乎比必要的麻烦更多,特别是考虑到您的方法是有效的,您可以使用
remove
或系统调用删除旧文件。