❶ 关于c++Builder XE英文版本编译问题
第一个问题:
\n 和 endl 表示回车。
第二个问题:
1、gets(str);
是从缓冲区中读取字符串,然后保存到数组str中直到遇到回车符,换行符不作为字符串的内容,读取的换行符会转换为NULL值,由此标志程序的结束。
2、cin.getline(char*line,int size,char ='"n')是读入一行字符,第二个参数是本次读取的最大字符个数,第三个参数是分隔字符,作为读取一行结束的标志,默认是\n。
3、cin.get()第一个用法,是读入一个字符。 cin.get()第二个用法,也是输入一行(同cin.getline()),但是区别就是,不输出分隔符
补充一下:
cin.getline() 与 cin>>str 的一个不同是,前者输入一行,行中可以包含空格,后者却以空格或回车作为字串结束,不包含空格。
补充:get() 和getline()的异同
1)相同点:
要获取一行的输入,标准流类的成员函数getline(),get()都有三个参数,比如getline(char*line,int size,char ='\n')。其中第一个参数指向存储结果字符的缓冲区指针,第二个表示缓冲区大小(本次读取的最大字符个数,不能够超过其限度),第三个表示知道什么时候停止读输入的终止符(读取一行结束的标志)。终止符有一个经常用到的缺省值"\n"。两个函数遇到输入终止符时,都把零储存在结果缓冲区里。
2)不同点:
1.一般来讲,get()一次读入一个字符,getline()一次读入一行字符
2.在处理字符串时,get()遇到输入流的分隔符时就停止,而不从输入流中提取分隔符。比如用cin.get(myarray1,20,'*'); 处理字符串1111*2222,碰到*就停止。cout<<myarray1;会输出1111。然后再调用cin.get(ch1),cout<<ch1;输出的还是这个分隔符*。getline()与其相反,它从输入流中提取分隔符,但仍没有把它储存在结果缓冲区里。如果用cin.getline(myarray2,20,'*');处理上面同样的字符串1111*2222,碰到*停止。 cout<<myarray2;会输出1111。然后再调用cin.get(ch2),cout<<ch2;输出的是分隔符后面的2。
3)代码演示:
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
char myarray1[20],myarray2[20];
cin.get(myarray1,20,'*');
cout<<myarray1;
char ch1;
cin.get(ch1);
cout<<ch1;
cin.getline(myarray2,20,'*');
cout<<myarray2;
cin.get(ch1);
cout<<ch1;
}
4)read 函数和 write函数
最近开始从事搜索引擎的工作,所以又重新开始了c/c++的旅程,时隔4年
不得不复习一下c/c++其中的内容,以下内容有网上别的朋友发表的,也有我自己总结的.
1. read
#include
ssize_t read(int filedes, void *buf, size_t nbytes);
返回值:读取到的字节数;0(读到 EOF);-1(出错)
read 函数从 filedes 指定的已打开文件中读取 nbytes 字节到 buf 中。以下几种情况会导致读取到的字节数小于 nbytes :
A. 读取普通文件时,读到文件末尾还不够 nbytes 字节。例如:如果文件只有 30 字节,而我们想读取 100
字节,那么实际读到的只有 30 字节,read 函数返回 30 。此时再使用 read 函数作用于这个文件会导致 read 返回 0 。
B. 从终端设备(terminal device)读取时,一般情况下每次只能读取一行。
C. 从网络读取时,网络缓存可能导致读取的字节数小于 nbytes 字节。
D. 读取 pipe 或者 FIFO 时,pipe 或 FIFO 里的字节数可能小于 nbytes 。
E. 从面向记录(record-oriented)的设备读取时,某些面向记录的设备(如磁带)每次最多只能返回一个记录。
F. 在读取了部分数据时被信号中断。
读操作始于 cfo 。在成功返回之前,cfo 增加,增量为实际读取到的字节数。
2. write
#include
ssize_t write(int filedes, const void *buf, size_t nbytes);
返回值:写入文件的字节数(成功);-1(出错)
write 函数向 filedes 中写入 nbytes 字节数据,数据来源为 buf 。返回值一般总是等于 nbytes,否则就是出错了。常见的出错原因是磁盘空间满了或者超过了文件大小限制。
对于普通文件,写操作始于 cfo 。如果打开文件时使用了 O_APPEND,则每次写操作都将数据写入文件末尾。成功写入后,cfo 增加,增量为实际写入的字节数。
From : antigloss
❷ 用VS2010将英文程序源码编译以后,中文界面语言显示乱码
在vc6.0中默认的编码是Ascii编码,VS2010中默认的编码是Unicode编码,你可以设置你的VS2010编译器中的字符编码为Ascii
,你可以将代码修改成
MessageBox(hwnd,(LPCWSTR)CString("OK"),(LPCWSTR)CString("显示"),0);
就可以啦
❸ 用vc++6.0英文版编写c程序的详细步骤。
【回答】 具体步骤:1、打开软件(双击);2、点击左上角那个【新建】按钮(工具栏第一个按钮);3、然后点击【保存】按钮(工具栏第三个), 选路径到一个空的文件夹(可以自己新建一个),如何【确定】保存; 3、接下来,就可以 在【编辑】C++语言了,如:#include<iostream>
#include<string>
using namespace std;void main()
{
cout<<"选我吧!"<<endl;
}4、编辑完了之后,直接按F5(或Ctrl+F5)键,这时会弹出提醒,不用理,直接回车回车再回车!就可以编译运行了! 【注意:】以上步骤,我是用最简单的方法来说的,以便楼主容易掌握。用菜单也可以,但是麻烦多了。如果以后学VC活其他高级语言了,就不用这个方法了,但是楼主也那时肯定会其他方法了! 【建议】其实如果只是编C,而没有C++的话,建议用win-tc就可以了:http://www.onlinedown.net/soft/32364.htm因为VC是比较大的软件,运行也相对缓慢些,到学C++活VC++的时候再用VC6吧~
❹ visual c++ 2010 express(英文版)如何编译c语言新手
首先建立一个项目,如果只是编译c的话,选择空项目就行了,然后在左边的窗口里会有3个文件夹,在第2个(源文件)上右击点击添加-新建项-选择c++文件,然后取名的时候以.c结尾就是c,以.c++结尾就是c++默认为c++。如果你有头文件的话,在第一个文件夹里添加-新建项-头文件就行了。
❺ 用c语言编译执行时输入英文,结果显示中文是为什么
我认为是代码的问题。
我用的也是vc6,中文绿色版,Win7,64位的系统。从来没出现由于软件不兼容导致程序停止运行的问题。
用该VC6.0编过小程序,也编过一个程序几千行的代码,有出现过某某.exe已停止工作的问题。
从来都是代码的问题。
有可能是读写了非法内存。有可能是控件(比如窗口之类的),信号之类的。
中文版本并不妨事儿,没有中文路径就和英文的一样了。
❻ 谁知道在哪里可以找到翻译C语言编译器中英文解释的
雅虎翻译
❼ 英语编译程序怎么翻译
编译程序一般翻译为compiler。
实际上在整个编译过程中会用到很多的工具,预处理器、编译器、汇编器、定位/分配器、连接器。
❽ visual c++ 2010 express(英文版)如何编译c语言新手
File->New->Project
在打开的New Project对话框中最左侧一栏中选择Visual C++下面的CLR,之后在其右侧的区域中选择CLR Empty Application
并在下面的三个文本框中填入工程名称(Name),工程位置(Location)以及解决方案名称(Solution Name)
之后单击OK
然后可以解决方案浏览器中看到刚才新建的工程,右击工程名,选择Properties(属性),在打开的对话框中选择Configuration Properties(配置属性)下面的General(一般),然后将右边对话框中的Common Language Runtime Support(CLR支持)改为"No Common Language Runtime Support",然后点击确定退出
接下来右击工程中的Source Files,选择Add->New Item...,在打开的对话框中选择“C++ File(.cpp)",并在下方输入一个以.c结尾的文件名,之后点击Add,之后就可以在这个文件中加入C语言代码,按F5就可以调试运行了。
❾ C++ 程序。中文字在英文系统下显示乱码。修改代码中相应的 中文字,变异程序后,依旧为乱码。请高手指点。
有如下几个因素可以考虑一下:
1、源码文件本身是以什么编码格式存储的,一般有中文存在的时候是以unicode编码格式存储,英文系统一般没有unicode编码库,所以找不到相应字符,建议改成ASCII编码;
2、你的代码中字符串的存储是用的宽字符集还是窄字符集,全都改成窄字符集,用ASCII编码,应该就不会显示乱码了