c语言中printf与p r i n t f有啥区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中printf与p r i n t f有啥区别相关的知识,希望对你有一定的参考价值。
printf 是标准标识符,是打印函数, p r i n t f什么都不是 参考技术A printf是C的关键字,标准输出函数名,而p r i n t f是字符串,区别仅此而已。 参考技术B C的关键字是32个,里面没有printf这个关键字,printf只是一个系统库函数,包含在stdio.h这个头文件里,里面还有scanf、putc、fopen等等函数,与math.h里面的cos、aqrt等一样,都是库函数,可以自己改写。 参考技术C p r i n t f这个啥都不是吧C语言调用函数
以下是头文件里编写的代码
void myname(struct ex *p)
int i=0,j=0,a=0;
do
printf("Name:");
scanf("%s",&(*p).name);
printf("Number:");
scanf("%s",&(*p).num);
printf("Score:");
for(i=0;i<N;i++)
scanf("%f",&(*p).s[i]);
printf("Wether to continue?\n");
printf("Please continue to press 1\nOtherwise,Please press 2\n");
scanf("%d",&a);
j++;
while(a==2);
以下是调用函数代码
#include<stdio.h>
#include<myself.h>
#define N 3
struct ex
char name;
char num;
double s[N];
;
int main()
struct ex *p;
myname(p);
求大神帮忙看看应该怎么调用才正确,总是弄不对。有下面四个错误
--------------------Configuration: 草稿 - Win32 Debug--------------------
Compiling...
草稿.c
d:\microsoft visual studio\vc98\include\myself.h(8) : error C2037: left of 'name' specifies undefined struct/union 'ex'
d:\microsoft visual studio\vc98\include\myself.h(10) : error C2037: left of 'num' specifies undefined struct/union 'ex'
d:\microsoft visual studio\vc98\include\myself.h(12) : error C2065: 'N' : undeclared identifier
d:\microsoft visual studio\vc98\include\myself.h(14) : error C2037: left of 's' specifies undefined struct/union 'ex'
Error executing cl.exe.
草稿.obj - 4 error(s), 0 warning(s)
struct ex
char name;
char num;
double s[N];
;
以上这几行要挪到你的头文件的最开头。
代码里的%f要改为%lf。
这样,编译就不会报错了。
但一运行程序就会崩溃,因为还有两个问题:
1)
int main()
struct ex *p;
myname(p);
要改成:
int main()
struct ex p;
myname(&p);
2)
char name; ---》只有一个字节的空间,不论怎么输入都会内存越界,最好改用char数组
char num;---》只有一个字节的空间,不论怎么输入都会内存越界,最好改用char数组 参考技术A 以下是头文件里编写的代码
void myname(struct ex *p)
int i=0,j=0,a=0;
do
printf("Name:");
scanf("%s",&(*p).name);
printf("Number:");
scanf("%s",&(*p).num);
printf("Score:");
for(i=0;i<N;i++)
scanf("%f",&(*p).s[i]);
printf("Wether to continue?\\n");
printf("Please continue to press 1\\nOtherwise,Please press 2\\n");
scanf("%d",&a);
j++;
while(a==2);
以下是调用函数代码
#include<stdio.h>
#include<myself.h>
#define N 3
struct ex
char name;
char num;
double s[N];
;
int main()
struct ex *p;
myname(p);
求大神帮忙看看应该怎么调用才正确,总是弄不对。有下面四个错误
--------------------Configuration: 草稿 - Win32 Debug--------------------
Compiling...
草稿.c
d:\\microsoft visual studio\\vc98\\include\\myself.h(8) : error C2037: left of 'name' specifies undefined struct/union 'ex'
d:\\microsoft visual studio\\vc98\\include\\myself.h(10) : error C2037: left of 'num' specifies undefined struct/union 'ex'
d:\\microsoft visual studio\\vc98\\include\\myself.h(12) : error C2065: 'N' : undeclared identifier
d:\\microsoft visual studio\\vc98\\include\\myself.h(14) : error C2037: left of 's' specifies undefined struct/union 'ex'
Error executing cl.exe.
草稿.obj - 4 error(s), 0 warning(s)
以上是关于c语言中printf与p r i n t f有啥区别的主要内容,如果未能解决你的问题,请参考以下文章