c - 如何扫描除第一行以外的行中的值

标签 c arrays struct scanf

假设我有一行
电话 143 189 123
123 120 122
F 111 234 221

如何只扫描前两行的值而不扫描字母,同时排除第三行的扫描。

我的版本

typedef struct{
    int Maths;
    int Comp;     
    int Eng;
}Marks;

Marks A[99]; // Struct 
int row = 0;

while(c = getchar()){
    if(c == 'D'){
        scanf("%d %d %d", A[row].Maths, A[row].Comp, A[row].Eng);
        row++;
    }
}

最佳答案

在格式说明符前添加一个* 意味着你想从流中读取,但结果应该被丢弃,而不是存储在参数指向的位置。

if(c == 'D'){
    scanf("%d %d %d", &A[row].Maths, &A[row].Comp, &A[row].Eng);
    row++;
}
else {
    scanf("%*d %*d %*d");
}

关于c - 如何扫描除第一行以外的行中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061115/

相关文章:

c++ - 如何在 C++ 中向该程序添加 while 循环

c++ - 结构作为构造函数参数(在 main 中声明)

c - 这个斐波那契函数有什么问题?

java - 将数组传递给不同的类...Netbeans Java

python - 如何从二维数组+最大值的索引中获取每列的最大值

python - 获取 Pytables 一维数组中值的索引

C 错误 : braced-group within expression allowed only inside a function

c - 如何知道fork()代码中的输出?

c - 使用c语言在linux下使用oss制作一个可以播放音频文件的程序

python:c-struct 和 wintypes