注册 登录
编程论坛 C语言论坛

请问vs2013里sscanf_s怎么把一个char *里的内容写到一个char m[50]里?

星系隐 发布于 2020-02-08 13:44, 2116 次点击
如题,在vs2013里,用sscanf_s将一个char *a里的内容写到一个 char m[50]里,请问应该怎么实现?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>


int main(void){
char *a="m=123";
char m[50];


.
.
.
.
.
puts(m);
_getch();
}
中间的我不会了,求网友人工补全我只会一个char *a写到两个long double的实现(还是网上抄来的)
5 回复
#2
星系隐2020-02-08 13:51
这是一个char *a写成两个long double的写法
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>


int main(void){
    char *a = "m=123&n=456";
    long double m = 0, n = 0;


    printf("%s\n", a);
    if (sscanf_s(a, "m=%Lf&n=%Lf", &m, &n) != 2)
        printf("错误\n");


    printf("%Lf和%Lf的成绩是:%Lf。<br>\n", m, n, m*n);
    _getch();
    return 0;
}
#3
星系隐2020-02-08 13:52
再求大家给我讲讲sscanf_s的用法吧,我百度了一下就看明白一个返回-1和0都是没写入成功,写入成功是写入几个返回几个参数
#4
forever742020-02-08 23:12
sscanf_s(m,"%s",a,49);
#5
forever742020-02-08 23:15
带_s的需要给每个%s或%c格式符在后面搭配2个参数,第二个是最大长度。
其他格式符和原来一样,还是后面搭配一个参数。
#6
星系隐2020-02-09 13:24
回复 5楼 forever74
能不能讲讲那个第二个一个字符串写入两个long double是怎么操作的呀谢谢大哥!
1