c++string 输入换行符

#include<string>

fasdfsd
saf saf sgsg gsa
gf sag dg
saf
一次性全部输入到一个串里怎么弄?

换行符通常是默认的输入结束标志,现在要把它作为字符存入字符串,就得另外约定一个结束符,这里设为'#'。有了这个约定,就有很多办法可以解决题面问题,下面提供一种:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <string>
#include <iostream>
using namespace std;
int main(void){
    string s;
    char x;
    while((x=cin.get())!='#')//输入#结束,其他字符继续
        s+=x;
    cout << s << endl;
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-07
string 一次只能输入一行,不含换行符。可以自己添加换行符 和输入行数。例如:
#include <iostream>
#include <string>
using namespace std;
main()
{
string s,s2;
int i;
getline (cin,s);
for (i=0;i<3;i++) // 行数
{
getline (cin,s2);
s.append("\n"); // 添加换行符
s.append(s2);
}
cout << s << endl;
return 0 ;
}本回答被提问者和网友采纳
第2个回答  2013-10-26
#include "iostream"
using namespace std;
int main()
{
string tt;
int num;
char *cTemp;
cTemp = new char[100];
printf("enter the number of char:\n");
scanf("%d", &num);

fflush(stdin);
printf("enter char:\n");

if (num<1||num>100)
{
printf("error number!!\n");
return 0;
}

for(int i=0; i<num; i++)
{
scanf("%c", cTemp+i);
// cTemp++;
}

printf("你输入的是:\n");
for(i=0; i<num; i++)
{
printf("%c", *(cTemp+i));
tt.append(cTemp+i);
}

printf("\n");
return 0;
}

自己手写的,你参考一下吧,可以一个个append到string中
第3个回答  2013-10-26
string s;
getline(cin,s);
相似回答