c++易混淆区域
·
c++基础
1.cout里面输出printf时,用引号不行的话,用char(34)是一样的,代表 “ 单引号。
#include<bits/stdc++.h>
using namespace std;
const double IP=3.14;
int main()
{
string s={"hello"};
for(int i=0;i<s.size();i++)
cout<<"printf(\""<<s[i]<<"\");"<<endl;
return 0;
}
********
printf("h");
printf("e");
printf("l");
printf("l");
printf("o");
2.字符转换:cout<<char(c-32)<<endl;
3.输入输出混用:
由于cin自带缓冲区同步,和c语言的scanf printf缓存不一样
混用以后:顺序错乱,换行残留,读空,乱输入
#include<bits/stdc++.h>
using namespace std;
int main()
{
//万能两行,接触cin和c语言输入输出隔阂
ios::sync_with_stdio(false);
cin.tie(0);
//后面cin scanf printf 随便混用
int a;
cin>>a;
printf("%d",a);
return 0;
}
注意:getline绝对不能和cin,scanf混用,一定会读到空字符,清除换行才能用
另:getline清空换行用cin.ignore()
4.cin的作用
cin遇见空格,回车换行,制表符\t全部直接停止,会自动跳过,开头不管有多少空格,换行,空白字符全部自动忽略,不读取(scanf(“%s”)和cin一样)
getline碰到换行\n才停止,不会跳过空格,不会自动省略前面的回车
5.向上取整:s/v ==> (s+v-1)/v
6.c++的引号和c的引号
常见错误:c语言中只能用字符数组char s[100],c++中用数组+string类 string s;
string只能用“ ”,而字符用‘ ’
更多推荐


所有评论(0)