Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 参数2的类型为int*,希望读取文件_C_Linux_Int_Fopen_Scanf - Fatal编程技术网

C 参数2的类型为int*,希望读取文件

C 参数2的类型为int*,希望读取文件,c,linux,int,fopen,scanf,C,Linux,Int,Fopen,Scanf,读这行时似乎有些错误 国家10 如何将数字10保存为整数?最后,我将再读三行,它们是%c%I,这样我就可以再保存三个变量。fscanf比strtok更易于使用 #include <stdio.h> #include <stdlib.h> //any? /// /// main function /// @author jw /// @param /// @param /// @returns /// int main(int argc, char* argv[

读这行时似乎有些错误

国家10

如何将数字10保存为整数?最后,我将再读三行,它们是
%c%I
,这样我就可以再保存三个变量。
fscanf
strtok
更易于使用

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



//any?
///
/// main function
/// @author jw
/// @param 
/// @param 
/// @returns 
///
int main(int argc, char* argv[])
{

    FILE *fp;


    fp = fopen( argv[1], "r" );
    if( fp == NULL ) {
            //something went wrong
            perror( argv[1] );
            exit( 1 );
        }

        int states = 0;

        //print the first 3 lines using sscanf()
        // then capitalize on that matrix
        //
        fscanf(fp, "%i",&states  );
        printf("Number found is %i", &states);
    }

有问题的路线是

printf("Number found is %i", &states);
编译器说:

warning: format '%i' expects argument of type 'int', but argument 2 has type 'int *'
使用
fscanf
传递
&声明变量的地址,因为需要
fscanf
修改变量。但是对于调用
printf
,不会对变量进行任何修改,您必须传递变量的值
states

在代码中,更改此值

printf("Number found is %i", &states);


printf()
接受整数变量,而不是指向整数变量的指针。

现在代码只打印“状态数为0”。我读取的行应该是状态10,我不知道如何选择int 10,所以我将代码更改为fscanf(fp),%c%I,字母和状态);并添加了char-letter;这些评论是什么意思?你能继续话题吗?是的,我将在2分钟内更新问题。不,请不要这样做。你已经提出了问题。请让我们继续话题并处理你提出的问题。
printf("Number found is %i", states);
printf("Number found is %i", &states);
printf("Number found is %i", states);