分享

我是C语言菜鸟,这是一个跟整型、字符型相关的基础问题

 承诺程序员之家 2016-07-25

核心提示:我是C语言菜鸟,这是一个跟整型、字符型相关的基础问题……,用户提出问题:我是C语言菜鸟,这是一个跟整型、字符型相关的基础问题……,具体如下:C数据类型?通过互联网整理获得以下解决方法:=================1楼=====================if(1==scanf(%d,&...,中国学网提供,健康,养生,留学,移民,创业,汽车等信息

用户提出问题:我是C语言菜鸟,这是一个跟整型、字符型相关的基础问题……,具体如下:C数据类型?

通过互联网整理获得以下解决方法:

=================1楼=====================

if (1 == scanf( "%d", &a ))

{

//a成功赋值。

}

=================2楼=====================

控制台输入的都是ASCII码,包括输入的数字其实也是ASCII码,然后根据scanf中的%d再转化为整型

如果你输入格式是%d,但你输入的不是一串'0'~'9'的字符,那么就会转换失败,所以a的值没有变

建议深入了解一下scanf的原理

=================3楼=====================

case 'd':

break;

case 'x':

break;

=================4楼=====================

建议楼主看下c库函数,基本的还是要知道的

=================5楼=====================

仅供参考:

#include <stdio.h>

int main()

{

int a,b,n,v,r,k;

char buf[80];

char *p;

k=0;

r=EOF;

while (1) {

if (EOF==r) {

fgets(buf,80,stdin);

p=buf;

}

while (1) {

r=sscanf(p,"%d%n",&v,&n);[pagebreak][pagebreak]

if (1==r) {k++;break;}

if (EOF==r) break;

p++;

}

if (EOF==r) continue;

p+=n;

if (1==k) a=v;

if (2==k) {

b=v;

break;

}

}

printf("%d,%dn",a,b);

return 0;

}

#include <stdio.h>

char s[]="123 ab 4";

char *p;

int v,n,k;

void main() {

p=s;

while (1) {

k=sscanf(p,"%d%n",&v,&n);

printf("k,v,n=%d,%d,%dn",k,v,n);

if (1==k) {

p+=n;

} else if (0==k) {[pagebreak][pagebreak]

printf("skip char[%c]n",p[0]);

p++;

} else {//EOF==k

break;

}

}

printf("End.n");

}

//k,v,n=1,123,3

//k,v,n=0,123,3

//skip char[ ]

//k,v,n=0,123,3

//skip char[a]

//k,v,n=0,123,3

//skip char[b]

//k,v,n=1,4,2

//k,v,n=-1,4,2

//End.

如果您还有更好的解决方法,请在最下面评论中留下您的解决方法

[pagebreak][pagebreak]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多