gpt4 book ai didi

c - 在C编程中将文本文件中的部分行提取到新文件中

转载 作者:太空狗 更新时间:2023-10-29 16:02:22 25 4
gpt4 key购买 nike

我想从一个文本文件中提取一行的一部分,并在 UNIX 平台下用 C 编程将它输出到一个新文件中。例如,我有 file1.txt 如下:

设备:ABCDE1

日期:2012 年 12 月 12 日

运算符(operator)=李四

我希望它在 file2.txt 中显示为:

ABCDE1,2012 年 12 月 12 日,李四。

这是我目前的代码,我得到了打开和写入文件部分,但无法弄清楚如何在“Device:”之后提取信息,而不显示“Divice:”它自己。我的代码只是复制文件 1 的第一行,并将其放入文件 2 中:


#include "stdio.h"
main()
{
FILE *fs, *ft;
char ch ;
char file[100]="" ;
char Device [100];
char Date [80];

printf ("Enter file name and directory:");
scanf ("%s",&file);

fs = fopen (file, "r") ;
if ( fs == NULL )
{
puts ( "Cannot open source file" ) ;
exit( ) ;
}

ft = fopen ( "file2.txt", "w" ) ;
if ( ft == NULL )
{
puts ( "Cannot open target file" ) ;
fclose ( fs ) ;
exit( ) ;
}


fscanf(fs, "%s %s", Device,Date);
fprintf(ft, "%s %s\n", Device,Date);


fclose ( fs ) ;
fclose ( ft ) ;
return 0;
}

fscanf() 是一个很好的命令吗?或者是否有任何其他建议的命令来完成这项工作?提前致谢。

最佳答案

fscanf()是一个可能使用的函数。你会遇到“John Doe”的一些问题,因为 scanf() 函数系列将 %s 视为“空格分隔的字符串” - 所以你会读到“John”,然后下一步将得到 Doe 和其他任何东西在下一行,这可能不是你想要的。

在 fscanf() 本身中有解决这个问题的方法。或者,您可以使用 fgets() 读取整行,然后使用一些字符串函数将其拆分。有趣的是,线条的格式略有不同,这让生活更具挑战性。

我有意不告诉您确切的操作方法,因为我很确定您这样做的部分原因是为了学习。你从抄袭别人的作品中学不到任何东西。

关于c - 在C编程中将文本文件中的部分行提取到新文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com