c++ cin返回值是多少
为什么一个永远返回4一个返回3???????????cin返回是什么东西啊???#include<iostream>#include<string>usingnamesp...
为什么一个永远返回4 一个返回3???????????cin返回是什么东西 啊???
#include<iostream>
#include<string>
using namespace std;
int main()
{
/*string str;
cout<<"Please enter you name\n";
getline(cin,str);
cout<<"Hello,"<<str<<"!\n";
cout<<endl<<endl;*/
////
char str2[10];
void *p=(cin>>str2);
printf("\n个数:%d\n",sizeof((char*)p));
printf("字符串:%s",&str2[0]);
free(p);
cout<<endl;
///
char str3[10];
printf("Please input char*:\n");
void *pp=(cin>>str3);
int len=strlen((char*)pp);
printf("个数:%d\n字符串:%s\n",len,&str3[len-len]);
return 0;
} 展开
#include<iostream>
#include<string>
using namespace std;
int main()
{
/*string str;
cout<<"Please enter you name\n";
getline(cin,str);
cout<<"Hello,"<<str<<"!\n";
cout<<endl<<endl;*/
////
char str2[10];
void *p=(cin>>str2);
printf("\n个数:%d\n",sizeof((char*)p));
printf("字符串:%s",&str2[0]);
free(p);
cout<<endl;
///
char str3[10];
printf("Please input char*:\n");
void *pp=(cin>>str3);
int len=strlen((char*)pp);
printf("个数:%d\n字符串:%s\n",len,&str3[len-len]);
return 0;
} 展开
5个回答
展开全部
cin是C++的标准输入流,其本身是一个对象,并不存在返回值的概念。
不过经常会有类似于
while(cin>>a)的调用,这里并不是cin的返回值,而是>>操作重载函数istream& operator>>(istream&, T &);的返回值,其中第二个参数由cin>>后续参数类型决定。
其返回值类型为istream&类型,大多数情况下其返回值为cin本身(非0值),只有当遇到EOF输入时,返回值为0。
扩展资料:
cin是iostream类的对象,它是从标准输入设备(键盘)获取数据,程序中的变量通过流提取符">>"从流中提取数据。
流提取符">>"从流中提取数据时跳过输入流中的空格、tab键、换行符等空白字符。
注意:只有在输入完数据再按回车键后,该行数据才被送入键盘缓存区,形成输入流,提取运算符">>"才能从中提取数据。
需要注意保证从流中读取数据能正常运行。
参考资料来源:百度百科-标准输入流
展开全部
cin是C++的标准输入流,其本身是一个对象,并不存在返回值的概念。
不过经常会有类似于
while(cin>>a)
的调用,这里并不是cin的返回值,而是>>操作重载函数
istream& operator>>(istream&, T &);的返回值,其中第二个参数由cin>>后续参数类型决定。
其返回值类型为istream&类型,大多数情况下其返回值为cin本身(非0值),只有当遇到EOF输入时,返回值为0。
输入EOF的方法,windows下输入ctrl+z, Linux下输入ctrl+d。
于是,当输入所有数据后,通过输入EOF的方法,可以退出while(cin>>a)这样的循环。
不过经常会有类似于
while(cin>>a)
的调用,这里并不是cin的返回值,而是>>操作重载函数
istream& operator>>(istream&, T &);的返回值,其中第二个参数由cin>>后续参数类型决定。
其返回值类型为istream&类型,大多数情况下其返回值为cin本身(非0值),只有当遇到EOF输入时,返回值为0。
输入EOF的方法,windows下输入ctrl+z, Linux下输入ctrl+d。
于是,当输入所有数据后,通过输入EOF的方法,可以退出while(cin>>a)这样的循环。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这就涉及到sizeof跟strlen的区别了,sizeof是一个操作符,strlen是函数。
sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
sizeof((char*)p) 其实就是计算存放一个指针的空间大小,当然是4了,
strlen的参数是char*类型,计算字符串的长度,以结束符 0x00 为字符串结束。
cin不是函数不返回任何东西,它是一个输入流,应该说>>这个操作符返回什么,返回的是这个流本身,可以这么用cin>> str3 >> str4 >> str5;
sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所建立的最大对象的字节大小。
sizeof((char*)p) 其实就是计算存放一个指针的空间大小,当然是4了,
strlen的参数是char*类型,计算字符串的长度,以结束符 0x00 为字符串结束。
cin不是函数不返回任何东西,它是一个输入流,应该说>>这个操作符返回什么,返回的是这个流本身,可以这么用cin>> str3 >> str4 >> str5;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先cin不是函数,是C++类对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cin 相当于 Scanf("%****",&***);//***包含了c语言的很多东西,在C++里全替换了,不用那么麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询