如何扫描除第一行之外的行中的值

时间:2015-10-11 03:02:13

标签: c arrays struct scanf

说我有一排     D 143 189 123
    D 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++;
    }
}

1 个答案:

答案 0 :(得分:1)

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

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