0
 #include<fstream>
 #include<iostream>
 #include<string>
 #include<algorithm>
 using namespace std;

 int main(){
 ifstream infile;
 ofstream outfile;
 infile.open("oldfile.txt");
 outfile.open("newfile.txt");
 while(infile){
    string str,nstr;
    infile>>str;
    char charr[10];
    charr[0]='<';charr[1]='\0';
    nstr=str.substr(0,str.find_first_of(charr));

    outfile<<nstr<<' ';
 }
}

该程序使用 substr(0, string.find_first-of(charcter array which is starting point to be substring))每个单词的不必要的子字符串,但在写入另一个文件时它不保留行号。你能修好它吗 。它按顺序逐字写入文件。代码没有逐行保留,

4

2 回答 2

0

字符串输入不关心行边界,它将 \n、\t、\v 和其他可能与空格相同。

#include <sstream>
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string line,word;
    char foo[] = "<";
    while ( getline(cin,line) ) {
        string newline;
        for ( istringstream words(line)
            ; words >> word ; ) {
                newline+=word.substr(0,word.find_first_of(foo))+' ';
        }
        cout << newline << '\n';
    }
}
于 2012-05-13T23:18:43.880 回答
-1

改变

 outfile<<nstr<<' ';

 outfile<<nstr<<endl;

这将逐行写入,而不是与单个空白字符分开。

于 2012-05-13T20:29:06.290 回答