C. Ducky Debugging
题目描述:
略
数据范围:
略
题解:
是一个交互题。关键在于怎么读取一整行字符串。
gets
,linux
中没有这个函数,需要使用fgets
替代1
2
3
4
char str[maxn];
char *gets(char *str);
gets(str);fgets()
,也是读取一行,可以指定输入流1
2
3
4
char str[maxn];
char *fgets(char *__restrict__ __s, int __n, FILE *__restrict__ __stream)
fgets(str, 100, stdin); // 需要指定读取个数cin.getline()
读取换行符并将换行符替换成\0
,并且不会主动丢弃换行符,仍将换行符留在输入队列中,因此会出现超时情况。1
2
3
4
5
6std::basic_istream<char, std::char_traits<char>>::__istream_type & getline(char *__s, std::streamsize __n)
std::basic_istream<char, std::char_traits<char>>::__istream_type & getline(char *__s, std::streamsize __n, char __delim)
char str[maxn];
cin.get(str, 100);
cin.get(str, 100, '\n');getline()
读取换行符,并且将换行符替换成\0
,并且丢弃换行符,输入队列里面没有该换行符了1
2
3// 重载太多了,一般用法:
string s;
getline(cin, s);
总结,一般用 gets, fgets, getline
别用 cin.getline
代码:
1 | using namespace std; |