linux snprintf中出现编译错误,说明类型不兼容

68bkxrlz  于 2022-11-22  发布在  Linux
关注(0)|答案(2)|浏览(219)

我有一个程序,我试图将用户输入连接到一个命令,以便在wsl环境中执行它。

#include<stdio.h>
#include<stdlib.h>

int main(){
    char cmd[100];
    char usr_in[50];

    fgets(usr_in, sizeof(usr_in), stdin);
    cmd = snprintf(cmd, sizeof(cmd), "ping %s", usr_in);

    system(cmd);
    return 0;
}

但这会在编译过程中产生以下错误。

error: incompatible types in assignment of ‘int’ to ‘char [100]’
cmd = snprintf(cmd, sizeof(cmd), "ping %s", usr_in);

我不知道它说的是哪个整数赋值。sizeof(cmd)是唯一的整数,它是snprintf的有效参数。

xlpyo6sf

xlpyo6sf1#

snprintf会传回int(打印的字符数),而您尝试将传回值指定给cmd,即char[100]

mitkmikd

mitkmikd2#

snprintf会传回intcmd = snprintf…会尝试将int指派给数组cmd

相关问题