c语言初学者问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言初学者问题相关的知识,希望对你有一定的参考价值。

大一刚开始学c语言 然后我在读Ivor Horton著的c语言入门经典时遇到一个问题

在写一个简易的两个数字加减乘除的程序时 原书上在其中某一段落写的原文是
scanf("%lf %c %lf", &num1, &operation, &num2);

然后我在写的时候除了scanf后面加了_s外与原代码没区别 可是每次输入的时候都是程序直接停止工作 然后调试后出来的窗口提到了写入位置 时发生访问冲突什么的
大概能确认问题的来源是没有正确获取中间的字符型
前面没打完
没有正确获取中间的字符类型
我尝试了多种输入方式(空格的 不空格的 回车换行的都试了)都不行 想问问问题在哪?是因为代码规则什么的变了吗?(原书感觉有一定年头了 我用的编译器是vs2015)
还有就是我把两个数字和符号分开写在三行的scanf里就没问题了 请问这又是什么原因呢?
因为我是初学者 如果有可能的话请浅显一点的话解释一下 麻烦了!(如果办不到的话也没事)

参考技术A 标准C语言没有scanf_s()这个函数.
scanf_s()是微软在VC++,VS系列的编译器中提供的函数,用于防止出现scanf()越界的问题.
scanf_s()比scanf()多需要一个参数,来指定char型内存空间的大小,所以若改为scanf_s(),代码应为:
scanf_s("%lf%c%lf",&num1,&operation,1,&num2);

如果不是打算做windows的程序员,最好别用scanf_s(),这个函数会让你的代码可移植性变低,而且很多程序是在unix或类unix系统下跑的.本回答被提问者采纳
参考技术B scan为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。

scanf_s最后一个参数是缓冲区的大小,表示最多读取n-1个字符.

vc++2005/2008中提供了scanf_s(),在最新的VS2013中也提供了scanf_s()。在调用时,必须提供一个数字以表明最多读取多少位字符。
参考技术C 你是怎么输入的。

最简单的C语言问题!!!!

这是我按照书上用C++6.0写的程序
#include <stdio.h>
int main()

printf("This is a C program.\n");
return0;

我一编译就出来这些东西,我是C语言初学者,不懂这是怎么回事,帮帮忙哈~Compiling...
Error spawning cl.exe
qqq.obj - 1 error(s), 0 warning(s)

可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的
“Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的
选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,
“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,
你可以到相应的路径下找到这个应用程序。

因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”
—>“Directories(目录)”重新设置“Excutable Fils、Include Files、
Library Files、Source Files”的路径。很多情况可能就一个盘符的不同
(例如你的VC装在C,但是这些路径全部在D),改过来就OK了。

如果你是按照初始路径安装vc6.0的,路径应为:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT

include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC

如果你装在其他盘里,则仿照其路径变通就行(我就是装在D盘)。
关键是microsoft visual studio\ 后面的东西要相同。

参考:http://zhidao.baidu.com/question/20787147.html,感谢wswss11986
参考技术A 程序本身是没有问题的...
不问怀疑.......
估计是你的软件有问题....
参考技术B return 0;将其分开在试试。如果再不行就是编译器问题了。

参考资料:自己的

参考技术C return (0);

以上是关于c语言初学者问题的主要内容,如果未能解决你的问题,请参考以下文章

c语言的矩阵乘法问题 初学者求助

求C语言初学者书籍推荐

C语言语句执行顺序(初学者)

初学c语言指针问题

探究:初学者编程语言的选择

初学者提问:c语言 数组太小??