所以我刚开始阅读这本书,并从pdf文件中粘贴了这段代码:
group_index =
mtcars %>%
group_by(cyl) %>%
group_indices
mtcars %>%
mutate(group_index = group_index) %>%
group_by(cyl) %>%
slice(group_index %>% first %>% seq)
这本书说应该输出
// read name and age (2nd version)
int main()
{
cout << "Please enter your first name and age\n";
string first_name = "???"; // string variable
// ("???” means “don’t know the name”)
int age = –1; // integer variable (–1 means “don’t know the age”)
cin >> first_name >> age; // read a string followed by an integer
cout << "Hello, " << first_name << " (age " << age << ")\n";
}
如果我输入
Hello, 22 (age –1)
但我收到此错误
22 Carlos
程序没有编译。
我意识到在下面的行中,“减1”实际上并不是“减”“ - ”符号。 ..“ - ”“ - ”它大于减号,见?
D:\C++\Part I The Basics\Programs\3.Read name and age (2nd).cpp|9|error: stray '\226' in program|
所以我用减号更改了这个标志并键入了22个Carlos,它输出Hello 22,0而不是Hello 22,-1。
我的问题是:
当我只是从pdf中复制粘贴时,为什么程序不能正常工作?
为什么即使我用 - “ - ”符号改变 - 符号后它也无法工作?
答案 0 :(得分:0)
pdf中的字符看起来与-
符号不同,导致编译器无法识别符号。该程序完全符合它的设计目标。正如Ken White所说,你正在为一个int分配一个字符串,这导致你的输入流失败而你永远不会检查。你可以这样做:
cin >> first_name >> age;
if(cin.fail())
age = -1;
//Do Stuff
cin.fail()
将检查是否从输入流中为变量分配了正确的值。