c++用cout输出中文是为什么以“?”形式输出?求解答,谢谢

在VC6.0中,用 printf("中文"); 输出的时候显示中文没问题
但是当我用 cout<<"中文"<<endl; 输出的时候显示的是问号
谢谢

3个回答

控制台或者你的代码的文字编码需要修改下,使得可以支持你中文的内码。

qq_43571681
to be,or not to be 刚学不久,能不能给具体说说在哪里修改,谢谢
6 个月之前 回复

windows下的控制台使用的是gbk编码。你输出的是unicode。另外,估计是你的源文件保存的编码格式和 Windows 控制台的格式不同导致的。你可以试试输出到文件,然后打开输出的文件,应该就没有乱码了。

编码方式转换为utf-8

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
cout输出的两种形式
1 、cout&amp;lt;&amp;lt;&quot;英雄名称: 寒冰射手 艾希&quot;&amp;lt;&amp;lt;endl;2、 cout&amp;lt;&amp;lt;&quot;伤害: 56\t\t攻击距离:600\n&quot;              &amp;lt;&amp;lt;&quot;护甲:15.5\t魔抗:30\n&quot;              &amp;lt;&amp;lt;&quot;生命值:395\t生命回复:0.9\n&quot;;     //注意这里只
cout 不支持输出中文?
vc8 使用cout好像不支持输出中文rnrn例如 rnchar szText[] = "test out put中文"rncout << szText; rnrn得到的输出是test out putrn“中文”两个字没有输出rnrn附加说明:vc2005创建的win32程序,控制台模式的,rn工程设置当中不选择支持unicode,而是支持多字节字符集rnrn有人能够给出解释吗
为什么cout无法输出
程序如下:rn #include rn std::string global_str="hha";rn int global_int;rn int main()rn rn int local_int=2;rn std::string local_str;rn // ...rn std::cout<
cout输出中文,奇怪的错误!
用vs2010建了一个控制台工程,尝试fstream打开中文路径的文件,失败后上网搜索,发现这是一个通病,再后来把程序删的只剩下以下几行:rn#include "iostream"rnrnusing namespace std;rnrnvoid main()rnrn cout<<"好"<
cout输出!
为什么输出的时乱码!谢谢!rn#includernstruct STUDENT rn char ID[10];rn char Name[10];rn int TotalScore;rn STUDENT*next;rn ;rnstatic STUDENT* head=NULL;rnvoid AddStu(STUDENT stu)rn rn if(head==NULL)rn head=&stu;rn //cout<ID;rnrn//rn//rnvoid main()rn rn STUDENT t1="3140","leibao";rn STUDENT t2="3141","yang";rn AddStu(t1);rn STUDENT *ps=head;rn rn rnrn if(head==NULL)cout<<"NULL";rn else rn cout<<"not null"<ID<
cout输出
int a[] = 1,3,5,7,9; rnint *p = a;rncout<<*(++(++p))<<*(p++);rnrnout:73rnrn求详细计算过程!rn第一个7好理解,第二个3是为什么?rnrn我跟踪确实push 3rnrncout<<*(++(++p))<<*(p++);rn004016E1 mov ecx,dword ptr [ebp-18h]rn004016E4 add ecx,4rn004016E7 mov dword ptr [ebp-18h],ecxrn004016EA mov edx,dword ptr [ebp-18h]rn004016ED mov eax,dword ptr [edx]rn004016EF mov dword ptr [ebp-1Ch],eaxrn004016F2 mov ecx,dword ptr [ebp-1Ch]rn004016F5 push ecxrn004016F6 mov edx,dword ptr [ebp-18h]rn004016F9 add edx,4rn004016FC mov dword ptr [ebp-18h],edxrn004016FF mov eax,dword ptr [ebp-18h]rn00401702 add eax,4rn00401705 mov dword ptr [ebp-18h],eaxrn00401708 mov ecx,dword ptr [ebp-18h]rn0040170B mov edx,dword ptr [ecx]rn0040170D push edxrn0040170E mov ecx,offset std::cout (004777e0)rn00401713 call @ILT+255(std::basic_ostream >::operator<<) (00401104)rn00401718 mov ecx,eaxrn0040171A call @ILT+255(std::basic_ostream >::operator<<) (00401104)rn
cout输出,为什么会这样?
代码:rn#include "iostream.h"rnrnint hello1();rnint hello2();rnrnint main() rn int a, b;rn cout<<"a="<
以括号形式输出二叉树
原题题目描述输入一个二叉树的先序串,输出以括号形式表示的而叉树。如果结点的子树为空,先序串的对应位置为空格符。输入第1行:先序串 (结点数≤26,以单个大写字母表示)输出第1行:二叉树的括号形式样例输入AB#C##D##样例输出A(B(#,C(#,#)),D(#,#))注:空格用#表示分析 样例分析图这道题一看就需要用递归来做,可是千万不用被题目中疑似的数据范围坑了。题目中是说的“结点数≤26”,
cout函数控制结果输出形式
cout函数控制结果输出的形式
为什么argc argv用cout输出的是地址?
这是代码:rn#include "stdafx.h"rn#include rnusing namespace std;rnrnint _tmain(int argc, _TCHAR* argv[])rnrn rn while (argc)rn rn cout<
C 输出的为什么是这样?
[code=c]int main() float m=10.0/7; printf("%f\n",m); return 0[/code]rn输出结果是:1.000000 为什么是这样呢?我定义的是float类型,10.0默认不是float类型吗?10.0/7会将int先转为float,然后再转为double进行计算,得出结果后再转回float啊,可结果为什么没小数了呢?
为什么输出的excel表是浮点数形式
表的c列都是3.67263E+13这种形式rn代码是这句,我引用了owcrnxlsheet.ActiveCell.Cells(row, 3) = mydatareader1.GetValue(2).ToString()rnrn谢谢
为什么最后i输出1,求解答
public class TestAn TestA()n System.out.println("P");n this.init();n n void init()n System.out.println("Q");n n public static void main(String[] args)n TestB testb = new TestB();n nnclass TestB extends TestAn int i=1;n TestB()n super();n Ststem.out.println(i+"");n n void init()n System.out.println("C");n this.i=2;n System.out.println(i+"");n n
cout与printf输出变量地址时出现的问题,求解答
#include rn#include rnusing namespace std;rnrnvoid main()rn rn char ss[]="abcd"; rn printf("%0x\n",ss);rn cout<<&ss<
C语言输出水仙花数求解答
输出水仙花数 大佬们,麻烦帮我看下程序代码哪里出问题了,输出的s应该是a到b之间每一个数的各位的立方和。 #include&lt;stdio.h&gt; void main() { int a,b,n,k,j,s=0; printf(“a:”); scanf("%d",&amp;a); printf(“b:”); scanf("%d",&amp;b); for(n=a;n&lt;=b;n++) {...
c语言输出问题求大神解答
这是一个求快速指数运算代码 编绎和执行没有出错,就是最后输出没有结果 求大神解答那里出错了rn#include "stdio.h"rnrnquickculate(int x,int a, int y)rn int r;rn for(int i=0;i<=a;i++)rn r=x/y;rn x*=x;rn if(r=1)rn return r;rn else if (r
C++ 控制 cout 输出
C++输出 控制宽域、精度、进制、科学计数法以及用*填充。 示例如下: #include &amp;lt;iostream&amp;gt; #include &amp;lt;iomanip&amp;gt; using namespace std; void main() { int x = 1000; double y = 1.23456789; cout &amp;lt;&amp;lt; &quot;默认x值:&quot; &amp;lt;&amp;lt; x &amp;...
c++的cout输出控制符
首先看一下下边的代码 cout
输入和输出(cout/ cin)
#include&amp;lt;iostream&amp;gt; using namespace std; int main() { cout&amp;lt;&amp;lt;&quot;Hello world!!!&quot;&amp;lt;&amp;lt;endl; return 0; } cout标准输出(控制台) cin标准输入(键盘) 必须包含头文件#include&amp;lt;iostream&amp;gt;和std标准命名空间 C++的输入输出很方便,不需要格...
cout输出乱码的问题
刚写的小程序,其他地方没有问题,但是在print()方法里如果用cout就输出的是乱码,用printf正常,不理解,请达人指点rnrn#includernrnclass HeapSortrnprivate:rn int* array;rn int length;rnprotected:rn void swap(int x,int y)rn int temp = array[x];rn array[x]=array[y];rn array[y]=temp;rn rnrn void adjust(int index,int endIndex)rn while((2*index+1)<=endIndex)rnrn int nextIndex;rn if((2*index+2)>endIndex)rn nextIndex = 2*index+1;rn rn elsern nextIndex = array[2*index+1]>array[2*index+2]?(2*index+1):(2*index+2);rn rnrn if(array[index]=0;index--)rn adjust(index,length-1);rn rn rnrn void sort()rn for(int endIndex = length - 1 ;endIndex>=0;endIndex--)rn swap(0,endIndex);rn adjust(0,endIndex-1);rn print();rn rn rn;rnrnvoid main()rn int array[10]=5,4,3,2,1,6,7,8,9,10;rnrn HeapSort test(array,10);rn test.print();rn test.biuldHeap();rn test.print();rn test.sort();rn test.print();rn
cout 输出的奇怪问题?
void sql_output(vector &reads_cDNA)rnrnofstream out2("map_sql");rn unsigned int tmp=0;rn for(int m=0;m
关于cout << 的输出问题
刚刚看了操作符的优先级和结合性rn于是乎写了以下代码: rnint i = 0;rncout << i++ << --i << ++i << i--;rn输出结果是 -1000 编译环境VS2010rn我想问的是为什么会是这个结果 大家看看我的分析哪里错了:rn由于后置的++和--的优先级最高, 因此先算第一个和第四个, 并返回原值0, 这时的i= i + 1 - 1 = 0.rn然后算--i和++i, 分别返回-1和0, 最后做<< , 因此输出的不应该是 0-100吗?
cout输出问题
看到一个C++程序,对输出有点不太明白,程序如下:rn#include "iostream"rnusing namespace std;rnrnint abs(int a)rnrn cout<<"int abs"<=0?a:-a);rnrnvoid main()rnrn int a=-5, b=3;rn cout<<"a="<
cout输出精度问题
[code=C/C++]rn#include rn#include rn#include rnrnint main ()rnrn double a,b,c,d,e;rn int n,i = 0;rn cin>>n;rn while (n--) rn cin>>a>>b>>c>>d;rn a = (a-c);rn b = (b-d);rn e = (sqrt(a*a+b*b));rn rn cout<
cout string输出空字符串???
代码是这样的,可以通过编译,但为什么我的temp输出为空字符串, 我一个个的输出都有内容的.rn[code=C/C++]rn#include rn#include rn#include rnusing std::string;rnusing std::cin;rnusing std::cout;rnusing std::endl;rnint main() rn string str, temp;rn cin >> str;rn string::size_type index, j;rn for(index = 0, j = 0; index < str.size(); ++index) rn if(!ispunct(str[index])) rn temp[j] = str[index];rn ++j;rn //cout << str[index] << " " << j << endl;rn rn rn for(int i = 0; i<3; ++i) rn cout << temp[i] << endl;rn rn cout << temp << "ok" << endl;rn //str = temp;rn //cout << str << endl;rn return 0;rn rnrn[/code]
cout怎么输出char?
char c=2;rncout<
cout输出格式控制
主要是对cout之类的一些操纵运算子。它是I/O流控制头文件,就像C里面的格式化输出一样。
cout的二进制输出实现
1、在头文件中添加bitset类,即#include ; 2、添加std::bitset,以使用成员函数bitset。 #include #include int main() { int a=11; //打印出的二进制长度为4*4=16 std::cout(a)<<std::endl; return 0; } 运行结果为:0000000000001011
C++ cout输出字符
cout输出字符时,可以使用单引号 :cout << ';' << endl; //输出分号";"仅可输出字符型,如果单引号内是两个或多个字符,则会输出对应的int值(将字符转换为对应ASCII码值) 如:cout << ';;' << endl; //输出15163“;”对应的ASCII码为59(0x3B),“;;”为0x3B3B,对应十进制为15163
cout的输出顺序?
#include rnusing namespace std;rnint swaptest(int & a, int & b)rnrnint temp = a;rna = b;rnb = temp;rnreturn 0; // no usernrnrnint main()rnrn// output in the same linernint a=6, b=7;rncout << swaptest(a,b) << '\\t' << a <<'\\t' << b <
关于cout输出问题
用VC 写代码 有一句 cout<<"-"<
cout的输出格式控制
cout进行格式化操作时可以直接利用setf(),unsetf()和flags()函数,其中的setf()和unsetf()函数是在当前格式状态上追加或者删除指定的格式,flags()函数是将当前格式状态全部替换为指定的格式,其函数的参数如下: ios::dec     //10进制 ios::hex     //16进制 ios::oct      //8进制 ios::showbase...
cout输出的问题
比如我输出一大串字符,我想让每行固定是5个字符,然后第六个字符到下一行输出,怎么搞?除了计算出一行最多有多少个字符,然后在用width定义每个输出固定的宽度,再用总体除以宽度的方法以外?顺便问问一行最多多少个字符?
关于cout输出的问题
我是初学者,问一个简单的问题!rn下面程序的输出结果为1.98765,我定义的是长双精度浮点,有什么办法可以让它显示的倍数更多一些,谢谢。rnrn#include rnusing namespace std;rnint main()rnrn long double DO=1.9876543210987321654;rn cout<
cout输出之疑问
int a[] = 1,2,3,4,5;rnint *p = a;rn(1)cout<<(*(++p)++)<<*p++<
为什么不能输出中文?
rnrn rn 无标题文档rn rn rnrnrnrn rn用户名: rnrnrnrnrnrnrnrnrnrnrnrn rn Untitled Documentrnrnrnrnrnrnrnrn这个ajax 例子中如果是中文就出不来!
C语言 整数形式输出
类型转换字符%d的使用。 main() { int num1=123; long num2=123456; /*用3种不同格式,输出int型数据num1的值*/ printf(&amp;quot;num1=%d,num1=%5d,num1=%-5d,num1=%2d\n&amp;quot;, num1,num1,num1,num1); /*用3种不同格式,输出long型数据...
解决c++中cout输出中文乱码问题
最近发现cout输出不了中文,老是出现???问题 查阅了一下发现编码并没有问题,高级保存选项和控制台的编码选项都是GB2312,尝试了很多之后发现控制台还原旧版可以解决问题。 解决办法: 控制台打开——》右击——》属性——》使用旧版控制台——》重启就可以了。 ...
cout输出丢失了
1、Linux环境,一个简单的C++程序,调用cout输出信息rn[code=C/C++]#include rnusing namespace std;rnrnmain()rnrn for( int i = 0; ; i++ )rn rn cout << "hello cout" << i << endl;rn usleep(1000);rn rn[/code]rn2、运行时把输出重定向到文件中rnhellocout > 1.outrnrn3、文件系统满了以后,1.out中不再有新的输出rn4、清理文件系统中的部分空间后,[color=#FF0000]1.out中依然没有新的输出,也就是说cout没有从之前的文件系统爆满的故障中恢复过来[/color]。。rnrn这是什么情况?如何规避
cout 输出16进制
cout cout cout   // 输出16进制, setbase(int)可以设置8等。  cout   http://bbs.csdn.net/topics/260000993   #include  using namespace std;   int main(void) {     char data[8]
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件