为什么添加两个空格会产生错误的输出?
Why does adding two spaces produce incorrect output?
我有以下用于计算素数的程序:
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
bool primeTest(int number){
if ((number == 0) || (number == 1)){
return false;
}
if ((number == 2) || (number == 3)){
return true;
}
for (int j = 2; j <= number / 2; j++){
if (number%j == 0){
return false;
}
}
return true;
}
int main(){
vector<int> primeVector;
for (int i = 0; i <= 100; i++){
if (primeTest(i)){
primeVector.push_back(i);
}
}
int pvSize = primeVector.size();
for (int i = 0; i < pvSize; i++){
cout << primeVector[i] << ' ';
}
cin.get();
}
如果我将行 cout << primeVector[i] << ' ';
更改为 cout << primeVector[i] << ' ';
(我添加了一个 space)它会给我
28224382245822478224118224138224178224198224238224298224318224378224418224438224
478224538224598224618224678224718224738224798224838224898224978224
而不是
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
为什么会出现这种情况?只添加了一个space。它不会出现在双引号中。
字符串文字应该用双引号括起来,而不是单引号。单引号用于字符文字。如果在单个字符文字中有多个字符,则该值是某个实现定义的整数。多字符文字很少有用。
(请注意,这不适用于 '\n'
,它是由转义序列表示的单个字符。)
改用" "
。
简单来说,一个space就是一个字符,两个space就是两个字符或者一个C-Style字符串。
' ' -- 单个字符。
" " -- 两个 space 需要双引号。
我有以下用于计算素数的程序:
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
bool primeTest(int number){
if ((number == 0) || (number == 1)){
return false;
}
if ((number == 2) || (number == 3)){
return true;
}
for (int j = 2; j <= number / 2; j++){
if (number%j == 0){
return false;
}
}
return true;
}
int main(){
vector<int> primeVector;
for (int i = 0; i <= 100; i++){
if (primeTest(i)){
primeVector.push_back(i);
}
}
int pvSize = primeVector.size();
for (int i = 0; i < pvSize; i++){
cout << primeVector[i] << ' ';
}
cin.get();
}
如果我将行 cout << primeVector[i] << ' ';
更改为 cout << primeVector[i] << ' ';
(我添加了一个 space)它会给我
28224382245822478224118224138224178224198224238224298224318224378224418224438224
478224538224598224618224678224718224738224798224838224898224978224
而不是
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
为什么会出现这种情况?只添加了一个space。它不会出现在双引号中。
字符串文字应该用双引号括起来,而不是单引号。单引号用于字符文字。如果在单个字符文字中有多个字符,则该值是某个实现定义的整数。多字符文字很少有用。
(请注意,这不适用于 '\n'
,它是由转义序列表示的单个字符。)
改用" "
。
简单来说,一个space就是一个字符,两个space就是两个字符或者一个C-Style字符串。
' ' -- 单个字符。
" " -- 两个 space 需要双引号。