如何在C中向txt文件写入多行
我正在尝试编写一个C程序,验证从txt文件读取数字的SIN 我有一个函数(我们称之为“validate”),它从文件中读取并验证它。 然后我得到了一个main函数,如果我的validate函数返回0,那么SIN是有效的,否则它不是。现在我不知道如何将结果写入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
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
或系统调用删除旧文件。