| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2744 人关注过本帖
标题:cin连续输入问题
取消只看楼主 加入收藏
nikkizeng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-2-14
收藏
 问题点数:0 回复次数:3 
cin连续输入问题
如下代码:
char S[4], T[4];
cin >> S;
cin >> T;

分别输入"ABC"和"EFG"值后发现S会包含了T的内容.S="ABCEFG" T="EFG". 为什么会有这种情况?是不是buffer问题?
搜索更多相关主题的帖子: cin 输入 char 代码 
2006-05-29 18:15
nikkizeng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-2-14
收藏
得分:0 

我就是连续用两次cin啊.结果有问题了.
cout << "Input S:" << endl;
cin>>S;
cout << "Input T:"<<endl;
cin>>T;


2006-05-29 18:23
nikkizeng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-2-14
收藏
得分:0 
以下是引用BlueDreame在2006-5-29 18:28:00的发言:

怎么可能?S只有4个元素,怎么变成6个?另外输入时应用回车分开。

debug时发现S的内容是六位,此时肯定是溢出了. 其实我有提示:
cout << "Input S:" << endl;
cin>>S;
cout << "Input T:"<<endl;
cin>>T;
抱歉,没写详细. 但是输入时是分开了的,不关事.


2006-05-29 18:41
nikkizeng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-2-14
收藏
得分:0 

我用这个版本还是有问题,而且当S字符串被全部转成大写后,T字符串也跟着转成大写了.感觉怎么像变成共用地址了?

#include <iostream>
#include <string.h>
#include <iomanip> //for cout setw()
#include <stdio.h>

using namespace std;

//Sequence S and T
char S[4], T[4];

int alph_len = 0, sta_len = 0;
int sLength = 0, tLength = 0;

void main()
{
//Input alphabet number
cout << ("Input alphabet number:\n");
cin >> alph_len;
cout << ("Input state number:\n");
cin >> sta_len;

//Input S & T values
cout << "Input S:" ;
cin>>S;
cout << "Input T:";
cin>>T;
sLength = strlen(S);
tLength = strlen(T);
strupr(S);
strupr(T);
}


2006-05-29 20:32
快速回复:cin连续输入问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018302 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved