功能是从标准输入键盘上读入一个完整的行(从标准输入读,一直读到遇到换行符),把读到的内容存入括号中指定的字符数组里,并用空字符'\0'取代行尾的换行符'\n'。读入时不需要考虑换行符。 方法四:getline()读入string或char[] 使用方法: string str; getline(cin,str);//读入string char str2[1024]; cin.g...
这样做的一种方法是统计文件大小,调整std::string和fread()进入std::string氏const_cast<char*>()爱德data()..这需要std::string它的数据是连续的,这是标准所不需要的,但是对于所有已知的实现似乎都是如此。更糟糕的是,如果文件是以文本模式读取的,则std::string其大小可能不等于文件的大小。 一个完全正确、...
对于字符数据,如果是读入字符串的话,则针对存储类型有不同的实现机制: 1.如果用c风格的字符数组保存字符串,则字符串的结尾一定是会添加0作为结束符的 2.如果用string保存字符串,则结尾一定是不增加0的。 char a[100]; cin.getline(a,100);//读入一行数据,同时将数据存放在a字符数组中,末尾添0,同时换行符不...
string s2 = s1; // 初始化s2,并用s1初始化 string s3(s2); // 作用同上 string s4 = "hello world"; // 用 "hello world" 初始化 s4,除了最后的空字符外其他都拷贝到s4中 string s5("hello world"); // 作用同上 string s6(6,'a'); // 初始化s6为:aaaaaa string s7(s6, 3); // s7 ...
char *gets(char *string); gets()从标准输入读取数据,然后将结果存储在一个字符串变量中。它会返回一个指向字符串的指针,如果没有读取到内容,返回NULL值。 举一个简单的例子,我们可能会问用户一个问题,然后将结果读入字符串中: #include #include
#include<string> usingnamespacestd; intmain() { chara[50],b[50],charr; //经测试,cin读入字符串,会识别空格和回车为截止,并且不会吞掉, //只是每次读的时候会从第一个不为空格/回车的字符开始读(因为加一个getchar不影响,加两个就影响了)
C/C++读入含有空格的字符串 好久之前遇到 gets()不准用的情况,所以稍稍参考了一下网上的方法,整理一下。 代码语言:javascript 复制 char st[maxn];string s;1、gets(st);2、scanf("%[^\n]",st);3、getline(cin,s// 这里s是 string4、cin.get(st,maxn);5、cin.getline(st,maxn);...
int get_str( char *s, int size, const char ch='\n' ) //如果不输入第三个参数,默认为回车符{ int i; for( i=0;i<size-1;i++ ) { s[i]=getchar(); //读入一个字符 if ( s[i] == ch ) //遇到指定字符,结束输入 break; } s[i]='\0';...
这个函数接受两个參数:一个输入流对象和一个 string 对象。getline 函数从输入流的下一行读取,并保存读取的内容到不包含换行符。和输入操作符不一样的是,getline 并不忽略行开头的换行符。仅仅要 getline 遇到换行符,即便它是输入的第一个字符,getline 也将停止读入并返回。假设第一个字符就是换行符,则 string ...