C 参数2的类型为int*,希望读取文件
读这行时似乎有些错误 国家10 如何将数字10保存为整数?最后,我将再读三行,它们是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[
%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);