#include <iostream>
#include <string>
using namespace std;
int num[3]{ 3, 5, 6, };
cout << num[3] << endl;
string y;
getline(cin, y);
return 0;
}
输出为-858993460
#include <iostream>
#include <string>
using namespace std;
int num[]{ 3, 5, 6, };
cout << num << endl;
string y;
getline(cin, y);
return 0;
}
输出004FFC48
但我希望我的输出为356.为什么我在上述两个代码示例中收到不同的输出?
答案 0 :(得分:2)
阅读您的代码并回答我,y
是否与num
数组有任何关系?
当然不是,只是另一个变量。
int num[]{ 3, 5, 6, };
中的另一个错误
_________________________________^__
删除,
你只是说你的数组将有4个元素而你并不是说最后一个空格中有数字,所以编译器只是把垃圾放在那里然后你打印num
变量空间,因为数组喜欢指针但不相同。
(建议,删除逗号并记住计算机按照从第1行到第N行的顺序进行指示)
< / p>
如果您想要输出356,则需要将int
数据类型转换为char
,因为string
是一组字符。因此,制作自己的字符串函数
#include <iostream>
#include <string> // is ambiguous because iostream already have string
using namespace std;
// where is the main function?
int num[]{ 3, 5, 6, };
cout << num << endl;// this should be in a for statement at the end of the program because you output the proccesed values
string y; // container of chars
getline(cin, y); //why do you need this?
return 0;
}
修正:
#include <iostream>
using namespace std;
int main() {
//just for printing the numbers
int num[]{3, 5, 6};
for (int i = 0; i < 3; i++)
cout << num[i] << endl;
return 0;
}