1.使用cin输入字符串的相关问题
1.1 cin 使用空白(空格、制表符和换行符)来定字符串的界
这意味着cin在获取字符数组输入时只读取一个单词,在读取该单词后,cin将该字符串放到数组中,并自动在结尾添加空字符。这样,后一个字符串将不会输入到数组中。
1.2 当输入字符串可能比目标数组长时,将不能防止例如将包含30个字符的字符串放到20个字符的数组中的情况。
2.面向行的读取还不是面向单词
2.1 getline()
getline()读取一行的输入,直到到达换行符,并丢弃换行符
它有三个参数:数组名称、要读取的字符长度、第三个参数为XXX
如果为20,则函数最多读取19个字符,余下的空间用于存储空字符!!!注意!!!!
2.2 get()
get()有三个参数的版与getline()意思差不多,...,将换行符保留在输入序列中,不通过一定的手法,get()将不能通过最后的换行符!!!!如此这样使用:
cin.get(name,size);
cin.get();
cin.get(name2,size2);
2.3 空行和其他问题
当getline()和get()读取空行时怎么办?思考。。。
2.4 对于一个未被初始化的字符串,其内容是随机的,也就有可能出现空字符\0!!!!要先初始化!!!
2.5向string中输入一行字符
getline(cin,string);//向string中输入一行
1.1 cin 使用空白(空格、制表符和换行符)来定字符串的界
这意味着cin在获取字符数组输入时只读取一个单词,在读取该单词后,cin将该字符串放到数组中,并自动在结尾添加空字符。这样,后一个字符串将不会输入到数组中。
1.2 当输入字符串可能比目标数组长时,将不能防止例如将包含30个字符的字符串放到20个字符的数组中的情况。
2.面向行的读取还不是面向单词
2.1 getline()
getline()读取一行的输入,直到到达换行符,并丢弃换行符
它有三个参数:数组名称、要读取的字符长度、第三个参数为XXX
如果为20,则函数最多读取19个字符,余下的空间用于存储空字符!!!注意!!!!
2.2 get()
get()有三个参数的版与getline()意思差不多,...,将换行符保留在输入序列中,不通过一定的手法,get()将不能通过最后的换行符!!!!如此这样使用:
cin.get(name,size);
cin.get();
cin.get(name2,size2);
2.3 空行和其他问题
当getline()和get()读取空行时怎么办?思考。。。
2.4 对于一个未被初始化的字符串,其内容是随机的,也就有可能出现空字符\0!!!!要先初始化!!!
2.5向string中输入一行字符
getline(cin,string);//向string中输入一行
cin.getline(array,size);//向普通数组中输入一行
From:http://blog.csdn.net/lxmuyu/article/details/7367915