ubuntu中的警告,返回值为';fscanf';

ubuntu中的警告,返回值为';fscanf';,c,installation,scanf,festival,C,Installation,Scanf,Festival,通过运行通用脚本直接从…安装节日语音合成系统。 面对下面给定的问题……这个问题是否会影响我在节日框架上的工作? eps.c: In function ‘getd’: eps.c:142:7: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result] fscanf(fp, "%d %d", x, y); ^ 阅读的文档。您应该使用

通过运行通用脚本直接从…安装节日语音合成系统。 面对下面给定的问题……这个问题是否会影响我在节日框架上的工作?

eps.c: In function ‘getd’:

eps.c:142:7: warning: ignoring return value of ‘fscanf’, declared with attribute warn_unused_result [-Wunused-result]

   fscanf(fp, "%d %d", x, y);
   ^
阅读的文档。您应该使用已成功扫描项目的返回计数,例如,代码如下:

int x = 0, y = 0;
if (fscanf(fp, "%d %d", &x, &y) < 2) {
   fprintf(stderr, "missing numbers at offset %ld\n", ftell(fp));
   exit(EXIT_FAILURE);
}
intx=0,y=0;
如果(fscanf(fp,%d%d,&x,&y)<2){
fprintf(stderr,“偏移量%ld处缺少数字”,ftell(fp));
退出(退出失败);
}
因此,您可以改进eps.c文件(或许可以向上游提交补丁和/或bug报告)。

阅读的文档。您应该使用已成功扫描项目的返回计数,例如,代码如下:

int x = 0, y = 0;
if (fscanf(fp, "%d %d", &x, &y) < 2) {
   fprintf(stderr, "missing numbers at offset %ld\n", ftell(fp));
   exit(EXIT_FAILURE);
}
intx=0,y=0;
如果(fscanf(fp,%d%d,&x,&y)<2){
fprintf(stderr,“偏移量%ld处缺少数字”,ftell(fp));
退出(退出失败);
}
因此,您可以改进eps.c文件(或许可以向上游提交补丁和/或bug报告)。

阅读的文档。您应该使用已成功扫描项目的返回计数,例如,代码如下:

int x = 0, y = 0;
if (fscanf(fp, "%d %d", &x, &y) < 2) {
   fprintf(stderr, "missing numbers at offset %ld\n", ftell(fp));
   exit(EXIT_FAILURE);
}
intx=0,y=0;
如果(fscanf(fp,%d%d,&x,&y)<2){
fprintf(stderr,“偏移量%ld处缺少数字”,ftell(fp));
退出(退出失败);
}
因此,您可以改进eps.c文件(或许可以向上游提交补丁和/或bug报告)。

阅读的文档。您应该使用已成功扫描项目的返回计数,例如,代码如下:

int x = 0, y = 0;
if (fscanf(fp, "%d %d", &x, &y) < 2) {
   fprintf(stderr, "missing numbers at offset %ld\n", ftell(fp));
   exit(EXIT_FAILURE);
}
intx=0,y=0;
如果(fscanf(fp,%d%d,&x,&y)<2){
fprintf(stderr,“偏移量%ld处缺少数字”,ftell(fp));
退出(退出失败);
}

因此,您可以改进
eps.c
文件(并可能向上游提交补丁和/或bug报告)。

此警告表示,不检查scanf的返回值并不是一个好主意

我认为对
(void)
进行强制转换是一种避免这种情况的方法,但显然与本文讨论的不同:

然而,这不是一个错误,你得到的只是一个警告(你的标题有点误导)


如果未使用该值,则显然不是问题。

此警告表示,不检查scanf的返回值不是一个好主意

我认为对
(void)
进行强制转换是一种避免这种情况的方法,但显然与本文讨论的不同:

然而,这不是一个错误,你得到的只是一个警告(你的标题有点误导)


如果未使用该值,则显然不是问题。

此警告表示,不检查scanf的返回值不是一个好主意

我认为对
(void)
进行强制转换是一种避免这种情况的方法,但显然与本文讨论的不同:

然而,这不是一个错误,你得到的只是一个警告(你的标题有点误导)


如果未使用该值,则显然不是问题。

此警告表示,不检查scanf的返回值不是一个好主意

我认为对
(void)
进行强制转换是一种避免这种情况的方法,但显然与本文讨论的不同:

然而,这不是一个错误,你得到的只是一个警告(你的标题有点误导)

如果未使用该值,则显然不是问题。

手册页显示:

如果在之前到达输入结束,则返回值EOF 发生第一次成功转换或匹配失败。 如果发生读取错误,也会返回EOF,在这种情况下,错误 流的指示器(见ferror(3))已设置,errno已设置为 指出错误

这意味着您可以对照EOF进行检查:

#include<stdio.h>

int main(void){
    int a;
    printf("Please give the value of A: ");

    if(scanf("%d",&a) != EOF){
        printf("\nThe value of A is\t%d\n",a);
    }

    return 0;
}
#包括
内部主(空){
INTA;
printf(“请给出A:”)的值;
如果(扫描频率(“%d”,&a)!=EOF){
printf(“\n A的值是\t%d\n”,A);
}
返回0;
}
或:

#包括
#包括
#包括
内部主(空){
int a,errnum=errno;
printf(“请给出A:”)的值;
如果(扫描频率(“%d”,&a)=EOF){
fprintf(标准,“错误号的值:%d\n”,错误号);
perror(“perror打印的错误”);
fprintf(stderr,“打开文件时出错:%s\n”,strerror(errnum));
}
printf(“\n A的值是\t%d\n”,A);
返回0;
}
这适用于:

scanf、fscanf、sscanf、vscanf、vsscanf、vfscanf-输入格式控制 版本

手册页上说:

如果在之前到达输入结束,则返回值EOF 发生第一次成功转换或匹配失败。 如果发生读取错误,也会返回EOF,在这种情况下,错误 流的指示器(见ferror(3))已设置,errno已设置为 指出错误

这意味着您可以对照EOF进行检查:

#include<stdio.h>

int main(void){
    int a;
    printf("Please give the value of A: ");

    if(scanf("%d",&a) != EOF){
        printf("\nThe value of A is\t%d\n",a);
    }

    return 0;
}
#包括
内部主(空){
INTA;
printf(“请给出A:”)的值;
如果(扫描频率(“%d”,&a)!=EOF){
printf(“\n A的值是\t%d\n”,A);
}
返回0;
}
或:

#包括
#包括
#包括
内部主(空){
int a,errnum=errno;
printf(“请给出A:”)的值;
如果(扫描频率(“%d”,&a)=EOF){
fprintf(标准,“错误号的值:%d\n”,错误号);
perror(“perror打印的错误”);
fprintf(stderr,“打开文件时出错:%s\n”,strerror(errnum));
}
printf(“\n A的值是\t%d\n”,A);
返回0;
}
这适用于:

scanf、fscanf、sscanf、vscanf、vsscanf、vfscanf-输入格式控制 版本

手册页上说:

如果在之前到达输入结束,则返回值EOF 发生第一次成功转换或匹配失败。 如果发生读取错误,也会返回EOF,在这种情况下,错误 流的指示器(见ferror(3))已设置,errno已设置为 指出错误

这意味着您可以对照EO进行检查