scanf("%d\n");问题

# include <stdio.h>void main(){ int n; scanf("%d\n",&amp;n); printf("you typed %d\n",n);} 以上的代码要怎么样输入? 原因: \n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。(事实上,scanf格式串中的任何空白字符都表示读取并放弃空白字符。而且,诸如%d这样的格式也会丢掉前边的空白,因此你通常根本不需要在scanf格式串中加入显式的空白。) 因此,“%d\n”中的\n会让scanf读取到非空白字符串为止,而它可能需要读到下一行才能找到...
C语言问题 | 2011-08-31 16:13 | 阅读 1856 次 | 评论 9 条

VC6.0编译器Select the stop Build command before closing the workspace问题

使用VC6.0编译器,关闭时,出现: You cannot close the workspace while a build is in progress. Select the stop Build command before closing the workspace 解决方案: One advice is to update to the latest service pack (SP6).更新服务包。1. Do not build simultaneously in multiple instances.2. Do not run any other instance ...

for的妙用

从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 6 5输入数字4, 则程序输出: 1 2 3 412 13 14 511 16 15 610 9 8 7 #include<stdio.h>#define N 21void main(){ int i,j,k,n,sum=1,s; int a[N][N]={0}; printf("Input n (n<=20):"); sc...
C/C++ | 2011-08-26 21:06 | 阅读 936 次 | 评论 2 条

用VC++6.0编译时显示Error spawning cl.exe应该如何解决

实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,你可以到相应的路径下找到这个应用程序。因此问题可以按照以下方法解决:点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。很多情况可能就一个盘符的不同(例如你的VC装在C,但是这些路径全部在D),改过来就OK了。 以上答案摘自:http://zhidao.baidu.c...

为已声明指针分配空间问题及malloc(),calloc(),free()函数的原型

#include<stdio.h>#include<malloc.h>void main(){ char *p1; *p1=malloc(sizeof(char));} 错误信息: error C2440: '=' : cannot convert from 'void *' to 'char' 错误原因:这里声明的指针是p,而不舍得*p。 修改: #include<stdio.h>#include<malloc.h>void main(){ char *p1; p1=malloc(sizeof(char));}还是有错误,错误信息如下: e...
C语言问题 | 2011-08-25 22:25 | 阅读 2151 次 | 评论 0 条

指针声时,易错问题及其分析

摘自《你必须知道的495个C语言问题》1.5 问:char *p1,p2;这样声明有声明问题? 答:这样的声明没有任何问题,但是它可能不是你想要的。指针声明中的*号并不是基本类型的一部分,它只是包含被声明标示符的声明符(declarator)的一部分。也就是说,在C语言中,声明的语法和解释并非: 类型 标示符; 而是: 基本类型 生成基本类型的东西; 其中“生成基本类型的东西”——声明符——或者是一个简单标示符,或者是如同*p、a[10]或f()这样的符号,表明被声明的变量是指向基本类型的指针、基本类型的数组或者返回基本类型的函数。(当然,更加复杂的声...
C语言书摘 | 2011-08-25 21:46 | 阅读 802 次 | 评论 0 条

交换数值(函数传值问题)

# include <stdio.h>int main(void){ void swap(int a, int b); int a = 2, b = 3; swap(a, b); printf("%d\n%d\n", a, b); return 0;}void swap(int a, int b){ int c; c = a; a = b; b = c;}不用编译器,你想想会输出什么? 正确答案: 2 3 你错了吗?知道问什么错了吗? 我个人看法是: void swap(int a, int b){ ...

Win32

bk.view.catalog().start("0"); 什么是Win32   Win32是指你现在所使用的操作系统是32位的windows环境. Win32的重要意义   从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。   理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。许多程序员从来...
基础知识 | 2011-08-20 15:06 | 阅读 817 次 | 评论 0 条

斜杠‘/’与反斜杠‘\’

网上观点1: UNIX 操作系统设计了这种路径分隔法,它使用斜杠:/。由于网络是首先应用在 UNIX 计算机之间的,至今为止,一半以上的网络服务器仍是使用 UNIX 操作系统的,所以网址也沿用了斜杠作路径分隔符。微软在开发 DOS 2.0 的时候,从 UNIX 中借鉴了这种目录结构,但由于 DOS 中,斜杠已经用来作为命令行参数的标志了(UNIX 中用的是“ - ”符),所以只得使用反斜杠:\到了 Windows 时代,很多时候已经没有命令行参数的干扰,加上网络使用的扩展,现在斜杠和反斜杠大多时候可以互换,没有什么影响。 网上观点2: 正斜杠后面是路径,也就是文件名,而反斜杠后是加...
默认分类 | 2011-08-12 22:06 | 阅读 1866 次 | 评论 3 条

Dialog类的建立

问题: 我在C++中想建一个Dialog类,可总是提示Unable to open the files(E:\mypro\mydialog.h,E:\mypro\mydialog.cpp) for class "MyDlgClass".怎么回事啊?我把工程整个删了重建还是不行啊?请各位指点一下了。多谢多谢! 解决方法: 这是vc的bug解决步骤如下 1。关闭工程2。到你的工程文件夹下对应你的应该是E:\mypro路径下找到.clw文件对应你的应 该是E:\mypro\mydialog.clw删除它(这个是vc的classwizard使用的文件)3。重新打开工程文件,点击vie...
C++ | 2011-08-09 08:27 | 阅读 795 次 | 评论 2 条

圆整错误——有关浮点型

暂时用C++的例子(引用《C++程序设计学习指导与习题答案 (第2版)》)。 示例2.14 #include<iostream>using namespace std;int main(){ //illustrates round-off error:: double x=1000/3.0; //x=1000/3 cout<<"x="<<x<<endl; double y=x-333.0; //y=1/3 cout<<"y="<<y<<endl; double z=3*y-1.0; //z=3*(1/3)-1 cout<...
C/C++ | 2011-08-08 11:44 | 阅读 1026 次 | 评论 6 条
浏览48169次