C++如何读取一个文本文件然后输出多个文本文件

2014-10-03 19:07:49 +08:00
 razrlele
书上输入输出这一块讲的晕晕乎乎的总是傻傻分不清楚不得已上来请教一下。。。

我读取一个文本文件,里面有2N行,奇数行是一个数字,偶数行是字符,如何才能实现输出N个文件,且每个文件文件名对应一行数字,文件内容对应文件名数字所在行的下一行字符?
3873 次点击
所在节点    问与答
8 条回复
Monad
2014-10-03 20:05:25 +08:00
用c FILE试试?
cxx的文件流略显复杂,不明白也是正常的
大概就是读一行 fopen一个文件 fgets一行 fwrite进去 fclose掉 往复循环
hadoop
2014-10-03 22:00:57 +08:00
这很难? 不就是:

while 输入文件A没结束:
读一行;
以这行的内容(数字)建立一个文件B;
再读一行;
将刚才读的那一行内容,写入刚才建立的文件B;
文件B close;
hadoop
2014-10-03 22:01:27 +08:00
c++的ostream之类建立文件也不复杂啊
songco
2014-10-04 08:49:23 +08:00
基本的文件操作,很简单,你网上找个文件操作的例子吧,应该到处都是。
Exin
2014-10-04 11:15:39 +08:00
我只知道 #include<fstream> (应该没记错吧..
逐行读取,输出的时候指定下文件名就好了
razrlele
2014-10-04 12:08:20 +08:00
@Exin 在输出多个文件的情况下怎么指定输出文件名啊~
razrlele
2014-10-04 12:22:52 +08:00
@hadoop
ifstream readfile;
readfile.open("D:\test\0106.txt");
char title[100];
char c;
ofstream file;
while (readfile >> title)
{
file.open("D:\test\%s.txt", title, ios::out);
请教一下我应该如何把title作为文件名,这样写会报错:

1 IntelliSense: 没有与参数列表匹配的 重载函数 "std::basic_ofstream<_Elem, _Traits>::open [其中 _Elem=char, _Traits=std::char_traits<char>]" 实例
参数类型为: (const char [13], char [100], const std::_Iosb<int>::_Openmode)
对象类型是: std::ofstream c:\Users\razrLeLe\Documents\Visual Studio 2013\Projects\test\test\transformer.cpp 45 9 test
hadoop
2014-10-05 10:25:03 +08:00
@razrlele 这一句不对吧

file.open("D:\test\%s.txt", title, ios::out);

你要做的无非是把读入的字符拼成一个文件名,直接用: string output = "D:\test\" + title + ".txt" 来拼接一下呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/136924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX