2 loveteda LOVETEDA 于 2016.03.30 23:27 提问

小白求助,这个c++程序为什么第一次循环for跳过getline?
c++
 string sen;
 int n;
    cin>>n;
    for(int i=1;i<=(n-1);++i)
    {
        getline(cin,sen);
        cout<<sen;
        counting(sen);//counting是一个函数
        cout<<"a:"<<numa<<endl;
        cout<<"e:"<<nume<<endl;
        cout<<"e:"<<numi<<endl;
        cout<<"o:"<<numo<<endl;
        cout<<"u:"<<numu<<endl<<endl;
    }

第二次循环才会等待输入sen。

5个回答

yokeyoke
yokeyoke   2016.03.30 23:33
已采纳

http://www.cnblogs.com/A-Song/archive/2012/01/29/2331204.html
你没有弄懂cin到底是从什么地方获取内容,获取什么内容

bai596140538
bai596140538 回复yokeyoke: 懂了,又学到一招啊
2 年多之前 回复
bai596140538
bai596140538 回复yokeyoke: cin从控制台来,他这个问题我也想问问出在马尔?
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.03.30 23:36
 string sen;
sen.resize(100);

cin.getline(sen.c_str(),100); 
flueky
flueky   2016.03.31 00:00

cin之后,for之前,添加一个getchar,接收你输入整数之后,按下的那个回车符

CSDNXIAON
CSDNXIAON   2016.03.30 23:32

for循环跳过某循环变量值的方法(非循环体内方法)
c++第一次实验——循环do~while
帮忙写下用for循环语句编写一程序 新手求助
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq_34488169
qq_34488169   2016.03.30 23:33

都是大神啊 完全看不懂 呵呵呵

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C++中getline被跳过
#include "stdafx.h" #include"iostream" #include"math.h" #include"stdio.h" #include"cstdlib" #include"string" #include"cstring" using namespace std; #define Max 20 struct player { string na
getline() 被跳过,被忽略,没有执行
原因是它捕获了你之前输入的一个回车,比如你之前有cin >> x;  getline()就会捕获这个回车,所以会跳过; 解决办法:在cin>>x;后加一行cin.ignore();
getline()忽略开头换行符
使用cin.clear()或cin.ignore()跳过最开始的终止符 例如 int main() {     string strline;     cin>>strline;     cout<<strline<<endl; cin.ignore(1);//忽略一个字符     getline(cin,strline);     cout<<strline<<endl;
getline()详解
 本文转自:http://blog.sina.com.cn/s/blog_60263c1c0101ck25.html 我的技术博客:www.cnblogs.com/overcode     学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准string类型第二小节就是“用getline读取整行文本”。书上给的程序如下: int main() {
cin>>和getline混用需谨慎
造成程序错误结果的原因是,用户输入完年龄后按回车结束输入,把“\n”留在了输入流里,而cin不会主动删除输入流内的换行符,这样换行符就被getline读取到,getline遇到换行符返回,因此程序不会等待用户输入。
getline()这个函数
我经常会错用这个函数。它的原型是getline(is, s)这个函数的解释说明是:reads a line of input from is into s. Returns is. 注意哦,返回的是is的值,而非s的值。 c++primer里对getline的再解释是这个样子的: using getline to read an entire line. sometimes we do no
string::getline()和istream::getline()的区别
在学习C/C++的时候,对于输入部分的相关知识一直没有真正的搞清楚,与其一直浑浑噩噩,不如专门花个时间搞清楚它们。 参考:cplusplus.com  string::getline() istream& getline (istream& is, string& str, char delim); istream& getline (istream&& is, string& str
c++ getline读取避免空行
#include #include #include #include using namespace std; vector split(string str, string pattern) { vector ret; if (pattern.empty()) return ret; size_t start = 0, index = str.find_first_of(pattern
getline函数-linux
头文件: #include <stdio.h> 函数: ssize_t getline(char **lineptr, size_t *n, FILE *stream); eg: ssize_t size;//存放 当前行 的长度(包括“\n”) char * line = NULL;//存放 当前行 的字符串 size_t len;//文件总长度 FILE *fp; size = getline( &line, &len, fp ); [ 注意; 最后需要判断 line 是否为空指针,如果不是需要释放
C++ getline的使用
getline(istream &in, string &s) 从输入流读入一行到string s •功能: –从输入流中读入字符,存到string变量 –直到出现以下情况为止: •读入了文件结束标志 •读到一个新行 •达到字符串的最大长度 –如果getline没有读入字符,将返回false,可用于判断文件是否结束 #include #include #include us