我需要将用户输入的字符存储在数组中,但不是逐个存储。用户将这些输入为这样的一行;
....
我需要在阵列中保存每个点,但我不能这样做:
scanf("%s%s%s%s", &s[0], &s[1], &s[2], &s[3])
因为用户可以输入N个点。所以它必须是动态的,我想。
答案 0 :(得分:4)
scanf()
是C运行时函数。在C ++中,您应该使用std::cin
代替。例如,std::getline()
。您可以将返回的std::string
视为一个字符数组。
答案 1 :(得分:1)
用户将这些输入为这样的一行;
....
我需要在数组中保存每个点,
C解决方案:
将上限理解定义为1000并使用 scanset "%[]"
。
// Read up to 1000 `.`
char dot[1000 + 1];
if (scanf(" %1000[.]") == 1) {
// Success
puts(dot);
}
如果需要处理其他非.
,非白色空格字符,则需要其他代码。