V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
razrlele
V2EX  ›  问与答

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

  •  
  •   razrlele · 2014-10-03 19:07:49 +08:00 · 3881 次点击
    这是一个创建于 3705 天前的主题,其中的信息可能已经有所发展或是发生改变。
    书上输入输出这一块讲的晕晕乎乎的总是傻傻分不清楚不得已上来请教一下。。。

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

    while 输入文件A没结束:
    读一行;
    以这行的内容(数字)建立一个文件B;
    再读一行;
    将刚才读的那一行内容,写入刚才建立的文件B;
    文件B close;
    hadoop
        3
    hadoop  
       2014-10-03 22:01:27 +08:00
    c++的ostream之类建立文件也不复杂啊
    songco
        4
    songco  
       2014-10-04 08:49:23 +08:00 via iPhone
    基本的文件操作,很简单,你网上找个文件操作的例子吧,应该到处都是。
    Exin
        5
    Exin  
       2014-10-04 11:15:39 +08:00
    我只知道 #include<fstream> (应该没记错吧..
    逐行读取,输出的时候指定下文件名就好了
    razrlele
        6
    razrlele  
    OP
       2014-10-04 12:08:20 +08:00
    @Exin 在输出多个文件的情况下怎么指定输出文件名啊~
    razrlele
        7
    razrlele  
    OP
       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
        8
    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" 来拼接一下呗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1279 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:31 · PVG 01:31 · LAX 09:31 · JFK 12:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.