萨西摩尔·槿花 发表于 2022-10-15 15:18:12

scanf读入



怎样将以上数据读入数组?读入的条件应该是什么?
{:10_286:}

tommyyu 发表于 2022-10-15 15:34:56

本帖最后由 tommyyu 于 2022-10-15 15:40 编辑

读入一个:
int x, y;
scanf("[%d,%d]", &x, &y);
完整代码:
#include<stdio.h>
#define MAXN 200
int main() {
        int x, y;
        int i = 0;
        while(scanf("[%d,%d] ", &x, &y) == 2) i++;
        return 0;
}

萨西摩尔·槿花 发表于 2022-10-15 15:36:51

tommyyu 发表于 2022-10-15 15:34
读入一个:

怎样读入全部

萨西摩尔·槿花 发表于 2022-10-15 16:08:41

tommyyu 发表于 2022-10-15 15:34
读入一个:

完整代码:

谢谢,可以问一下scanf等于2是什么意思吗 ? 为什么用   getchar()!='\0判定不能正常读入?

tommyyu 发表于 2022-10-15 16:11:03

萨西摩尔·槿花 发表于 2022-10-15 16:08
谢谢,可以问一下scanf等于2是什么意思吗 ? 为什么用   getchar()!='\0判定不能正常读入?

scanf的返回值是正常输入的值的个数

'\0'是字符串末尾的字符串,输入的时候没有。可以改为getcher != '\n'。

jackz007 发表于 2022-10-15 16:12:44

本帖最后由 jackz007 于 2022-10-15 16:16 编辑

萨西摩尔·槿花 发表于 2022-10-15 15:36
怎样读入全部

#include <stdio.h>

/* 一次性整体读取 : */

int main(void)
{
      char ch                                                         ;
      int d , i , n = 0                                          ;
      do {
                scanf("[%d,%d]%c" , & d , & d , & ch)         ;
                n += 2                                                ;
      } while(ch != '\n')                                             ;
      printf("[%d,%d]" , d , d)                                 ;
      for(i = 2 ; i < n ; i +=2) printf(" [%d,%d]" , d , d) ;
      printf("\n")                                                    ;
}
      编译、运行实况:
D:\\C>g++ -o a a.c

D:\\C>a



D:\\C>
页: [1]
查看完整版本: scanf读入