精华内容
下载资源
问答
  • Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。Java 为 I/O 提供了强大的而灵活的支持,使...

    Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。

    Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。

    一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

    Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。

    1.读取控制台输入

    Java 的控制台输入由 System.in 完成。为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流。

    示例:

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    2.从控制台读取多字符输入

    从 BufferedReader 对象读取一个字符要使用 read() 方法.每次调用 read() 方法,它从输入流读取一个字符并把该字符作为整数值返回。 当流结束的时候返回 -1。该方法抛出 IOException。下面的程序示范了用 read() 方法从控制台不断读取字符直到用户输入 "q"。

    示例:

    //使用 BufferedReader 在控制台读取字符 import java.io.*; public class BRRead { public static void main(String args[]) throws IOException { char c; // 使用 System.in 创建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("输入字符, 按下 'q' 键退出。"); // 读取字符 do { c = (char) br.read(); System.out.println(c); } while (c != 'q'); }}

    3.从控制台读取字符串

    从标准输入读取一个字符串需要使用 BufferedReader 的 readLine() 方法。

    示例:

    //使用 BufferedReader 在控制台读取字符import java.io.*; public class BRReadLines { public static void main(String args[]) throws IOException { // 使用 System.in 创建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Enter lines of text."); System.out.println("Enter 'end' to quit."); do { str = br.readLine(); System.out.println(str); } while (!str.equals("end")); }}

    4.控制台输出

    控制台的输出由 print( ) 和 println() 完成。这些方法都由类 PrintStream 定义,System.out 是该类对象的一个引用。PrintStream 继承了 OutputStream类,并且实现了方法 write()。这样,write() 也可以用来往控制台写操作。

    示例:

    import java.io.*; //演示 System.out.write().public class WriteDemo { public static void main(String args[]) { int b; b = 'A'; System.out.write(b); System.out.write(''); }}
    f266a62a024d47e2cb413d09a1726d70.png
    展开全文
  • Java控制台五子棋

    2019-10-26 19:26:49
    控制台五子棋是在java控制台实现的五子棋对战游戏,可玩性并不高,实现这个小游戏主要联系面向对象编程和五子棋核心逻辑实现。电脑也没有实现人工智能。 特点 不能用鼠标操作,只能用键盘输入下棋位置。 Java可以...

    前言

    说明

    控制台五子棋是在java控制台实现的五子棋对战游戏,可玩性并不高,实现这个小游戏主要联系面向对象编程和五子棋核心逻辑实现。电脑也没有实现人工智能。

    特点

    不能用鼠标操作,只能用键盘输入下棋位置。

    Java可以用AWT,Swing技术实现可视化,目前还没用。

    输入输出

    输入用(x,y)格式输入要要下棋的坐标。

    输入用字符串“+”来表示棋格,“@”表示黑棋,”O”表示白棋。

    规则

    黑棋先行,一般来说是用户。

    棋盘大小一般为15*15,可以自己定义

    白棋或黑棋先为横,竖,斜5连为赢家

    棋盘下满还无赢家为和棋。

    面向对象设计类

    棋盘类ChessBorad

    属性

    二维字符串数组

    棋盘大小

    行为

    初始化棋盘,将二维数组全部初始化为“+”

    打印棋盘和棋子,用来输出

    Get棋盘,后面会用到。

    根据棋盘位置和棋子set旗子

    棋子枚举类

    因为棋子只有两种类别,并且为字符串类型,设置为枚举类型,后面需要引用的时候直接调用,逻辑清楚

    游戏类

    属性

    一个棋盘

    用户当前输入的坐标

    赢得连珠大小

    行为

    1判断用户输入的坐标是否合法,第一步判断输入格式是否正确,第二部判断输入大小是否在棋盘范围内,第三步判断输入位置是否有棋子。每种情况都满足返回true

    2判断用户是否赢得胜利,五子棋游戏的核心。分为四种情况,即横竖斜,每种情况从当前输入的位置向两个方向计数判断,效率相对扫描棋盘高。

    3判断是否为和棋

    4.电脑是通过随机生成坐标坐,需要判断随机生成的坐标是否有棋子。

    5判断当和棋或者一方胜利时是否重新开始游戏。

    游戏过程

    流程图

     

    代码实现

    ChessBorad类

    public class ChessBoard {
        private String[][] chessBoard;
        public final int SIZE = 20;
        
        public void initBoard(){
            chessBoard = new String[SIZE][SIZE];
            for(int i = 0;i < SIZE;i++){
                for(int j = 0;j < SIZE;j++){
                    chessBoard[i][j] =  "+";
                }
            }
        }
        public void printBoard(){
            for(int i = 0;i < SIZE;i++){
                for(int j = 0; j < SIZE;j++){
                    System.out.print(chessBoard[i][j]);
                }
                System.out.println();
            }
        }
        public String[][] getChessBoard(){
            return chessBoard;
        }
        public void setChessBoard(int x,int y,String str){
            chessBoard[x][y] = str;
        }
    }
    

    ChessMan类

    public enum ChessMan {
        BLOCK("@"),WHITE("O");
        private String s;
        private ChessMan(String str){
            s = str;
        }
        public String getS(){
            return s;
        }
    }
    

    GoBangGame类

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    public class GobangGame {
        private ChessBoard chessBoard;
        private int posX;
        private int posY;
        private final int WON_SIZE = 5;
    
        public boolean isValid(String str){
            String[]input = str.split(",");
            try{
                posX = Integer.parseInt(input[0]) - 1;
                posY = Integer.parseInt(input[1]) - 1;
            }catch(NumberFormatException ex){
                chessBoard.printBoard();
                System.out.println("输入格式不对,请输入(x,y)类型,重新输入:");
                return false;
            }
            if(posX < 0 || posX >= chessBoard.SIZE || posY < 0 || posY >= chessBoard.SIZE)return false;
    
            String[][] s = chessBoard.getChessBoard();
            if(s[posX][posY] != "+")return false;
            return true;
        }
        public boolean isPeace(){
            String[][] str = chessBoard.getChessBoard();
            for(int i=0; i < chessBoard.SIZE;i++){
                for(int j = 0; j < chessBoard.SIZE;j++){
                    if(str[i][j] == "+")return false;
                }
            }
            return true;
        }
        public boolean isWon(int X,int Y,String str){
            String[][] s = chessBoard.getChessBoard();
            int wonCount = 1;
            int x = X;
            int y = Y-1;
            //判断横线
            while(y >= 0){
                if(s[x][y].equals(str))
                {
                    wonCount++;
                    y--;
                }
                else break;
            }
            y = Y + 1;
            while(y < chessBoard.SIZE){
                if(s[x][y].equals(str)){
                    wonCount++;
                    y++;
                }
                else break;
            }
            if(wonCount >= WON_SIZE)return true;
            //判断竖线
            x = X - 1;
            y = Y;
            wonCount = 1;
            while(x >= 0){
                if(s[x][y].equals(str)){
                    wonCount++;
                    x--;
                }
                else break;
            }
            x = Y + 1;
            while(x < chessBoard.SIZE){
                if(s[x][y].equals(str)){
                    wonCount++;
                    x++;
                }
                else break;
            }
            if(wonCount >= 5)return true;
            //判断斜线1
            x = X - 1;
            y = Y - 1;
            wonCount = 1;
            while(x >=0 && y>=0){
                if(s[x][y].equals(str)){
                    wonCount++;
                    x--;
                    y--;
                }
                else break;
            }
            x = X + 1;
            y = Y + 1;
            while(x < WON_SIZE && y < WON_SIZE){
                if(s[x][y].equals(str)) {
                    wonCount++;
                    x++;
                    y++;
                }
                else break;
            }
            if(wonCount >= 5)return true;
    
            //判断斜线2
            x = X - 1;
            y = Y + 1;
            wonCount = 1;
            while(x >= 0 && y < WON_SIZE){
                if(s[x][y].equals(str)){
                    wonCount++;
                    x--;
                    y++;
                }
                else break;
            }
            x = X + 1;
            y = Y - 1;
            while(x < WON_SIZE && y >= 0){
                if(s[x][y].equals(str)){
                    wonCount++;
                    x++;
                    y--;
                }
                else break;
            }
            if(wonCount >= 5)return true;
            return false;
        }
        public int[] computerDo(){
            //System.out.println("djlfdf");
            String[][] s = chessBoard.getChessBoard();
            int x = (int)(Math.random() * chessBoard.SIZE);
            int y = (int)(Math.random() * chessBoard.SIZE);
            while(!s[x][y].equals("+")){
                x = (int)(Math.random() * chessBoard.SIZE);
                y = (int)(Math.random() * chessBoard.SIZE);
            }
            int[] a = new int[2];
            a[0] = x;
            a[1] = y;
            //System.out.println("djlfdf");
            return a;
        }
        public boolean isReplay(String str) throws Exception{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            if(ChessMan.BLOCK.getS().equals(str))System.out.println("黑棋胜出,输入y继续游戏");
            else if(ChessMan.WHITE.getS().equals(str))System.out.println("白棋胜出,输入y继续游戏");
            else System.out.println("和棋,输入y继续游戏");
            String s = br.readLine();
            if(s.equals("y"))return true;
            return false;
        }
        public void game() throws Exception{
            boolean isOver = false;
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            chessBoard = new ChessBoard();
            chessBoard.initBoard();
            chessBoard.printBoard();
            System.out.println("请输入黑棋坐标:");
            String str;
            while((str = br.readLine()) != null){
                if(!isValid(str)){
                    //System.out.println("is here 1");
                    continue;
                }
                //System.out.println("djlfdf");
                String chess = ChessMan.BLOCK.getS();
                chessBoard.setChessBoard(posX,posY,ChessMan.BLOCK.getS());
                if(isWon(posX,posY,ChessMan.BLOCK.getS()))isOver = true;
                //if(isPeace())isOver = true;
                else {
                    //System.out.println("djlfdf");
                    chess = ChessMan.WHITE.getS();
                    int[] s = computerDo();
                    //System.out.println("djlfdf");
                    chessBoard.setChessBoard(s[0], s[1], ChessMan.WHITE.getS());
                    //System.out.println("djlfdf");
                    if (isWon(s[0], s[1], ChessMan.WHITE.getS())) isOver = true;
                    if (isPeace()) {
                        isOver = true;
                        chess = null;
                    }
                    //System.out.println("djlfdf");
                }
                //System.out.println("djlfdf");
                if(isOver){
                        if(isReplay(chess)){
                            isOver = false;
                            chessBoard.initBoard();
                            chessBoard.printBoard();
                            continue;
                        }
                        else break;
                    }
                    chessBoard.printBoard();
                    System.out.println("请输入黑棋坐标:");
            }
        }
    
        public static void main(String[] args) {
            GobangGame g = new GobangGame();
            try{
                g.game();
            }catch (Exception ex){
                ex.printStackTrace();
            }
        }
    

     

    展开全文
  • final classFormatUtil {/*** 打印输入控制台**@paramjsonStr*@authorlizhgb* @Date 2015-10-14 下午1:17:22*/public static voidprintJson(String jsonStr) {System.out.println...}/*** 格式化*@paramjson...

    final classFormatUtil {/*** 打印输入到控制台

    *

    *@paramjsonStr

    *@authorlizhgb

    * @Date 2015-10-14 下午1:17:22*/

    public static voidprintJson(String jsonStr) {

    System.out.println(formatJson(jsonStr));

    }/*** 格式化

    *@paramjsonStr

    *@return*@authorlizhgb

    * @Date 2015-10-14 下午1:17:35

    * @Modified 2017-04-28 下午8:55:35*/

    public staticString formatJson(String jsonStr)

    {if (null == jsonStr || "".equals(jsonStr))

    {return "";

    }

    StringBuilder sb= newStringBuilder();char last = '\0';char current = '\0';int indent = 0;boolean isInQuotationMarks = false;for (int i = 0; i < jsonStr.length(); i++)

    {

    last=current;

    current=jsonStr.charAt(i);switch(current)

    {case '"':if (last != '\\')

    {

    isInQuotationMarks= !isInQuotationMarks;

    }

    sb.append(current);break;case '{':case '[':

    sb.append(current);if (!isInQuotationMarks)

    {

    sb.append('\n');

    indent++;

    addIndentBlank(sb, indent);

    }break;case '}':case ']':if (!isInQuotationMarks)

    {

    sb.append('\n');

    indent--;

    addIndentBlank(sb, indent);

    }

    sb.append(current);break;case ',':

    sb.append(current);if (last != '\\' && !isInQuotationMarks)

    {

    sb.append('\n');

    addIndentBlank(sb, indent);

    }break;default:

    sb.append(current);

    }

    }returnsb.toString();

    }/*** 添加space

    *

    *@paramsb

    *@paramindent

    *@authorlizhgb

    * @Date 2015-10-14 上午10:38:04*/

    private static void addIndentBlank(StringBuilder sb, intindent)

    {for (int i = 0; i < indent; i++)

    {

    sb.append('\t');

    }

    }

    }

    展开全文
  • 文字格式 Java应用程序,它从标准输入中读取文本并将格式化的输出写入控制台
  • 1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数用来向标准输出设备(屏幕)写...

    1.1.1 格式化输入输出函数

    Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和

    scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。

    printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入

    设备(键盘)上读数据。下面详细介绍这两个函数的用法。

    一、printf()函数

    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出

    信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:

    printf(””, );

    其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原

    样输出; 另一部分是格式化规定字符, 以”%”开始, 后跟一个或几个规定字符,

    用来确定输出内容格式。

    参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出

    参数个数一样多, 各参数之间用”,”分开, 且顺序一一对应, 否则将会出现意想

    不到的错误。

    1. 格式化规定符

    Turbo C2.0提供的格式化规定符如下:

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    符号 作用

    ——————————————————————————

    %d 十进制有符号整数

    %u 十进制无符号整数

    %f 浮点数

    %s 字符串

    %c 单个字符

    %p 指针的值

    %e 指数形式的浮点数

    %x, %X 无符号以十六进制表示的整数

    %0 无符号以八进制表示的整数

    %g 自动选择合适的表示法

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    说明:

    (1). 可以在”%”和字母之间插进数字表示最大场宽。

    例如: %3d 表示输出3位整型数, 不够3位右对齐。

    %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,

    小数点占一位, 不够9位右对齐。

    %8s 表示输出8个字符的字符串, 不够8个字符右对齐。

    如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

    但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;

    若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

    另外, 若想在输出值前加一些0, 就应在场宽项前加个0。

    例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度

    为4位。

    如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,

    小数点前的数字代表最小宽度。

    例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则

    第9个字符以后的内容将被删除。

    (2). 可以在”%”和字母之间加小写字母l, 表示输出的是长型数。

    例如: %ld 表示输出long整数

    %lf 表示输出double浮点数

    (3). 可以控制输出左对齐或右对齐, 即在”%”和字母之间加入一个”-” 号可

    说明输出为左对齐, 否则为右对齐。

    例如: %-7d 表示输出7位整数左对齐

    %-10s 表示输出10个字符左对齐

    2. 一些特殊规定字符

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    字符 作用

    ——————————————————————————

    \n 换行

    \f 清屏并换页

    \r 回车

    \t Tab符

    \xhh 表示一个ASCII码用16进表示,

    其中hh是1到2个16进制数

    ━━━━━━━━━━━━━━━━━━━━━━━━━━

    由本节所学的printf()函数, 并结合上一节学习的数据类型, 编制下面的程

    序, 以加深对Turbo C2.0数据类型的了解。

    例1

    #include

    #include

    int main()

    {

    char c, s[20], *p;

    int a=1234, *i;

    float f=3.141592653589;

    double x=0.12345678987654321;

    p=”How do you do”;

    strcpy(s, “Hello, Comrade”);

    *i=12;

    c=’\x41′;

    printf(”a=%d\n”, a); /*结果输出十进制整数a=1234*/

    printf(”a=%6d\n”, a); /*结果输出6位十进制数a= 1234*/

    printf(”a=%06d\n”, a); /*结果输出6位十进制数a=001234*/

    printf(”a=%2d\n”, a); /*a超过2位, 按实际值输出a=1234*/

    printf(”*i=%4d\n”, *i); /*输出4位十进制整数*i= 12*/

    printf(”*i=%-4d\n”, *i); /*输出左对齐4位十进制整数*i=12*/

    printf(”i=%p\n”, i); /*输出地址i=06E4*/

    printf(”f=%f\n”, f); /*输出浮点数f=3.141593*/

    printf(”f=6.4f\n”, f); /*输出6位其中小数点后4位的浮点数

    f=3.1416*/

    printf(”x=%lf\n”, x); /*输出长浮点数x=0.123457*/

    printf(”x=%18.16lf\n”, x);/*输出18位其中小数点后16位的长浮点

    数x=0.1234567898765432*/

    printf(”c=%c\n”, c); /*输出字符c=A*/

    printf(”c=%x\n”, c); /*输出字符的ASCII码值c=41*/

    printf(”s[]=%s\n”, s); /*输出数组字符串s[]=Hello, Comrade*/

    printf(”s[]=%6.9s\n”, s);/*输出最多9个字符的字符串s[]=Hello,

    Co*/

    printf(”s=%p\n”, s); /*输出数组字符串首字符地址s=FFBE*/

    printf(”*p=%s\n”, p); /* 输出指针字符串p=How do you do*/

    printf(”p=%p\n”, p); /*输出指针的值p=0194*/

    getch();

    retunr 0;

    }

    上面结果中的地址值在不同计算机上可能不同。

    例1.中第一条语句#include的含义是调用另一个文件stdio.h, 这

    是一个头文件, 其中包括全部标准输入输出库函数的数据类型定义和函数说明。

    Turbo C2.0对每个库函数便用的变量及函数类型都已作了定义与说明, 放在相应

    头文件”*.h”中, 用户用到这些函数时必须要用#include或#include”*. h”

    语句调用相应的头文件, 以供连接。若没有用此语句说明, 则连接时将会出现错

    误。

    二、scanf()函数

    scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。

    其调用格式为:

    scanf(””, );

    格式化字符串包括以下三类不同的字符;

    1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。

    2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多

    个空白字符。

    3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非

    空白字符相同的字符。

    地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数

    完全不同, 要特别注意。各个变量的地址之间同”,”分开。

    例2:

    main()

    {

    int i, j;

    printf(”i, j=?\n”);

    scanf(”%d, %d”, &i, &j);

    }

    上例中的scanf()函数先读一个整型数, 然后把接着输入的逗号剔除掉, 最

    后读入另一个整型数。如果”,”这一特定字符没有找到, scanf()函数就终止。若

    参数之间的分隔符为空格, 则参数之间必须输入一个或多个空格。

    说明:

    (1). 对于字符串数组或字符串指针变量, 由于数组名和指针变量名本身就

    是地址, 因此使用scanf()函数时, 不需要在它们前面加上”&”操作符。

    例3

    mian()

    {

    char *p, str[20];

    scanf(”%s”, p); /*从健盘输入字符串*/

    scanf(”%s”, str);

    printf(”%s\n”, p); /*向屏幕输出字符串*/

    printf(”%s\n”, str);

    }

    (2). 可以在格式化字符串中的”%”各格式化规定符之间加入一个整数, 表示

    任何读操作中的最大位数。

    如例3中若规定只能输入10字符给字符串指针p, 则第一条scanf() 函数语句

    变为

    scanf(”%10s”, p);

    程序运行时一旦输入字符个数大于10, p就不再继续读入, 而后面的一个读

    入函数即scanf(”%s”, str)就会从第11个字符开始读入。

    实际使用scanf()函数时存在一个问题, 下面举例进行说明:

    当使用多个scanf()函数连续给多个字符变量输入时, 例如:

    main()

    {

    char c1, c2;

    scanf(”%c”, &c1);

    scanf(”%c”, &c2);

    printf(”c1 is %c, c2 is %c”, c2\1, c2);

    }

    运行该程序, 输入一个字符A后回车 (要完成输入必须回车), 在执行scanf

    (”%c”, &c1)时, 给变量c1赋值”A”, 但回车符仍然留在缓冲区内, 执行输入语句

    scanf(”%c”, &c2)时, 变量c2输出的是一空行, 如果输入AB后回车, 那么输出结

    果为: c1 is A, c2 is B。

    要解决以上问题, 可以在输入函数前加入清除函数fflush()( 这个函数的使

    用方法将在本节最后讲述)。修改以上程序变成:

    #include

    main()

    {

    char c1, c2;

    scanf(”%c”, &c1);

    fflush(stdin);

    scanf(”%c”, &c2);

    printf(”c1 is %c, c2 is %c”, c1, c2);

    }

    1.1.2 非格式化输入输出函数

    非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替, 但

    这些函数编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较

    方便。下面分别进行介绍。

    一、puts()和gets()函数

    1. puts()函数

    puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:

    puts(s);

    其中s为字符串变量(字符串数组名或字符串指针)。

    puts()函数的作用与语printf(”%s\n”, s)相同。

    例4:

    main()

    {

    char s[20], *f; /*定义字符串数组和指针变量*/

    strcpy(s, “Hello! Turbo C2.0″); /*字符串数组变量赋值*/

    f=”Thank you”; /*字符串指针变量赋值*/

    puts(s);

    puts(f);

    }

    说明:

    (1). puts()函数只能输出字符串, 不能输出数值或进行格式变换。

    (2). 可以将字符串直接写入puts()函数中。如:

    puts(”Hello, Turbo C2.0″);

    2. gets()函数

    gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符

    不属于这个字符串。其调用格式为:

    gets(s);

    其中s为字符串变量(字符串数组名或字符串指针)。

    gets(s)函数与scanf(”%s”, &s)相似, 但不完全相同, 使用scanf(”%s”, &s)

    函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,

    空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符

    串直到回车为止。

    例5

    main()

    {

    char s[20], *f;

    printf(”What’s your name?\n”);

    gets(s); /*等待输入字符串直到回车结束*/

    puts(s); /*将输入的字符串输出*/

    puts(”How old are you?”);

    gets(f);

    puts(f);

    }

    posted on 2008-09-04 14:34 死神 阅读(2724) 评论(0)  编辑  收藏 所属分类: C/C++

    展开全文
  • 1.标准输入设备:键盘 2.标准输出设备:终端窗口 3.标准错误设备:通常也使用终端窗口 二、Java语言使用java.lang.System类中的三个公共静态变量来支持 1.System.in:是InputStream对象,指用户键盘。 2.System...
  • final class FormatUtil { /** ... * 打印输入控制台 * * @param jsonStr * @author lizhgb * @Date 2015-10-14 下午1:17:22 */ public static void printJson(String jsonSt...
  • 重新格式化代码以使用do循环进行输入验证,而不是while循环2.考虑使用数据库来保存音阶和注释信息,而不是使用硬编码的switch语句3.添加对MIDI输出的支持3.创建并实现基本的GUI 4.考虑将程序转换为支持DAW的VST插件 ...
  • Java中 已经为我们提供了许多对于日期处理的类,为了熟悉常用方法,我们来做一个控制台打印日历程序。 先上一个效果图: 需要实现的功能很简单,用户按照格式输入一个被定义好格式的日期,然后打印此年此月的日期并...
  • 工作中进行http相关接口测试时经常会收到返回的json数据,因为没有格式化输入控制台后看起来很不直观。早上写了一个小工具类,对这JSON串进行格式化输出,代替System.out.printpackage MyTest;/*** 格式化输入工具...
  • Java把数字格式化为货币字符串由广州疯狂软件教育java培训分享:数字可以标志货币、百分比、积分和电话号码等,就货币而言,在不同的国家会以不同的格式来定义,本实例将接收用户输入的数字,然后在控制台中输出其...
  • 输入: 某一天,格式如下: 2020-1-31 输出: 当月的日历 Java代码如下: import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar...
  • 数字可以标志货币、百分比、积分和电话号码等,就货币而言,在不同的国家会以不同的格式来定义,本实例将接收用户输入的数字,然后在控制台中输出其货币格式,其中使用了不同国家的货币格式。思路如下:使用...
  • 用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间. 练习实现代码: package ...
  • Java对JSON字符串进行格式化输出

    千次阅读 2017-05-01 20:06:36
    工作中进行http相关接口测试时经常会收到返回的json数据,因为没有格式化输入控制台后看起来很不直观。早上写了一个小工具类,对这JSON串进行格式化输出,代替System.out.print/** * 格式化输入工具类 * * @...
  • 这里主要是从键盘和文件读入数据,将数据格式化输出到控制台或者文件。灵活使用,会用即可;用时需要随用随查; java.util.Scanner提供了标准输入,比较有用的方法有 Scanner(InputStream input) :初始化一个...
  • 从键盘流向内存的数据流 C. 从键盘流向显示器的数据流 D. 从网络流向显示器的数据流 2、Java ...利用Console对象可访问与当前 Java 虚拟机 关联的基于字符的控制台设备,主要提供了基 于控制台格式化读取及.........
  • show console 打开控制台,并在控制台输入回车。安装package control,回车后可能会出现一会的卡死,等一会就好,知道控制台出现 Please restart Sublime Text to finish installation关闭sublime text3并重新启动,...
  • 格式化html/css/js/ (原文...1.使用快捷键ctrl+shift+p调出控制台输入install package,然后输入html-css-js prettify,进行下载 格式化c/c++/java (原文:https://www.cnblogs.com/zw...
  • 为了增加程序的功能性,需要程序能够接受输入,并且适当的格式化输出。现在我们主要使用基本的控制台来实现输入输出。 1.1 读取输入 读取输入首先需要构建一个Scanner类对象: Scanner sc = new Scanner(System.in) ...
  • 基本的控制台窗口输入输出。... System.out.printf 格式化输出   输入:  要想通过控制台进行输入,首先需要构造一个Scanner对象,它附属于标准输入流System.in.  在程序的最开始添
  • Java输入输出

    2017-09-23 20:09:55
    Java.io包中的流支持多种格式,如基本类型、对象、本地字符集 读取输入Java控制台输入使用System.inBufferedReader可以把System.in包装在一个BufferedReader对象中来创建一个字符流。BufferedReader br=new ...
  • 用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间. 知识需求 java基础知识 ...
  • 为了使示例程序更有趣,我们希望接受输入并正确格式化程序输出。当然,现代程序使用GUI来收集用户输入。然而,对这样一个接口进行编程需要的工具和技术比我们目前所能使用的要多。我们的第一个任务是对Java编程语言...
  • 日期时间格式化

    2019-12-07 11:49:21
    用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间. 实现代码如下: package ...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 187
精华内容 74
关键字:

java控制台格式化输入

java 订阅