Closed Mai-c1 closed 3 months ago
不好意思复制有误,编译命令为
{
"cmd": [{
"args": ["/usr/bin/g++", "main.cc", "-o", "main"],
"env": ["PATH=/usr/bin:/bin"],
"files": [
{"content": ""},
{"max": 536870912, "name": "stdout"},
{"max": 10240, "name": "stderr"}
],
"cpuLimit": 20000000000,
"memoryLimit": 34359738368,
"procLimit": 50,
"copyIn": {
"main.cc": {
"content": "#include <bits/stdc++.h>\n#define int long long\nusing namespace std;\nint t;\n\nvoid solve(){\n\tstring s;\n\tgetline(cin,s);\n\tmap<char,int>mp;\n\tmp['a']=0;mp['e']=0;mp['i']=0;mp['o']=0;mp['u']=0;\n\tfor(char x:s){\n\t\tif(mp.count(x)){\n\t\t\tmp[x]++;\n\t\t}\n\t}\n\tfor(auto p:mp){\n\t\tcout<<p.first<<\":\"<<p.second<<endl;\n\t}\n\tif(t!=0)cout<<endl;\n\treturn;\n}\n\nsigned main(){\n\tcin>>t;\ngetchar();while(t--)solve();\n\treturn 0;\n}"
}
},
"copyOut": ["stdout", "stderr"],
"copyOutCached": ["main"]
}
]
}
不过结果仍然不符合预期
请检查文件换行符,windows 下造的数据是 \r\n
换行,和 linux 下不一致,会使 getline
出问题。
请检查文件换行符,windows 下造的数据是
\r\n
换行,和 linux 下不一致,会使getline
出问题。
确实是换行符造成的原因,问题已经解决了,谢谢你
我的c++代码中使用了getline读取一整行字符串,即使使用getchar消除换行符,输出结果也和预期不一致 我编译了一个cpp文件
发送的具体命令为
1、手动指定输入
结果为
2、指定输入文件路径
输出结果为
文件内容为
两个结果的stdout不一致,手动指定输入结果和我跑出来的是一样的 其他语言没什么问题,唯独C++ 在使用getline函数时,会发生这个问题