【C/C++进阶】输入的技巧

【C/C++进阶】输入的技巧

[by_041]

有集合条件的读入:scanf("%[..]",char*);

char str[1001];
scanf("%[1234567890]",str);	//读到不是[...]里的字符停止
getchar();				//把使他停止的字符(一般是换行或空格)读掉
scanf("%[^\n]",str);	//读到[^...]里的字符停止
getchar();				//把'/n'读掉

单字符读入:ch=getchar();

int input()//eg.快读函数
{
    
    
	char ch;
	while((ch=getchar())<'0'||ch>'9');
	int ret=ch-'0';
	while((ch=getchar())>='0'&&ch<='9')
		ret=(ret<<1)+(ret<<3)+ch-'0';
	return ret;
}

整行读入:gets(char*);

char str[1001];
gets(str);		//会自动过滤末尾换行

整行读入:cin.get(char*,int).get();

char str[1001];

cin.get(str,1001);		//整行读入
getchar();				//读掉末尾换行

cin.get(str,1001).get();//也可以直接这么写

有停止条件的读入string:getline(cin,string,'\n');

string str;
getline(cin,str,'\n');		//读入整行并过滤末尾字符(默认为'\n')

有停止条件的读入char*:cin.getline(char*,int,'\n');

char str[1001];
cin.getline(str,1001,'\n');读入整行并过滤末尾字符(默认为'\n'

猜你喜欢

转载自blog.csdn.net/qq_42710619/article/details/116331441