#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数组,它的起点是子字符串))每个单词的不必要的子字符串,但在写入另一个文件时它不保留行号。你能修好它吗 。它按顺序逐字写入文件。代码没有逐行保存,
答案 0 :(得分: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';
}
}
答案 1 :(得分:-1)
更改
outfile<<nstr<<' ';
到
outfile<<nstr<<endl;
这将逐行写入,而不是使用单个空格字符进行拼写。