ストリングフォーマットの入力/出力

オリジナルリンク: http://www.cnblogs.com/zxj-262410/p/6691221.html

//主scanf関数とはstrlen用途のアレイはsizeof区別
する#include <stdio.hの>
DENSITY 62.4のための#define
INTメイン(ボイド)
{
;フロートの重量、体積
INTサイズ、文字、
文字名[40]。

printf( "こんにちは、あなたの最初の名前は何ですか、\ nは!?");
scanf関数( "%sの"、名);
printf( "%sの、あなたの体重はポンドで何\ nは?"、名);
scanf関数( "%のF"、および重量);
サイズ=はsizeof名。
手紙=のstrlen関数(名);
体積=重量/ DENSITY。
printf( "まあ、%sを、あなたのボリュームは%2.2F立方フィートである\ nは。"、
名前、ボリューム)。
printf( "また、あなたの最初の名前は%dの文字、\ nを持っている"
文字)。
printf( "私たちは、それを格納するための%dバイトを持っている\ nは。"、サイズ);
0を返します。

}

 


/ *
scanfの後に()入力の読み取りを開始し、最初の空白文字になります(銀行)に遭遇、タブ(タブ)または停止読書で改行(改行)。
%sの唯一の単語全体ではなく、文は、文字列として、他のメモリバッファに入金されます読み込み
* /


書式#include <stdio.hに>
の#define称賛「何Aスーパーマーベラス名!」
int型メイン(無効)
{
文字名[40];
しばらく(1)
{
のprintf( "何APOSあなたの名前\ N-?");
scanfの( "%S"、名前);
。のprintf( "こんにちは、%S%S \ N-"、名前、 PRAISE);
}

}

 

 


'\ 0' はsizeofと比べ//はstrlen()()より少ないです


書式#include <stdio.hに>
する#include <string.hの>
の#define称賛"何超素晴らしい名前!"
INTメイン(ボイド)
{
文字名[40]。

printf( "あなたの名前は何ですか\ nは?");
scanf関数( "%sの"、名);
printf( "こんにちは、%sの%sの\ nは。"、名前、賞賛)。
printfは( "%d個の文字のあなたの名前は%d個のメモリセルを占めている\ nは。"、
strlenを(名前)、はsizeof名)。
printf( "賛美の句は、%d個の文字がある"
strlenを(評価を));
printf( "とは、%d個のメモリセルを占有します。\ n"、はsizeof PRAISE)。
0を返します。

}

 

 


/ *使用シンボリック定数名は命名変数を満たす必要があり、あなたは、大文字と小文字、数字、およびアンダースコア文字を使用することができ、最初の文字は数字にすることはできません
予約済み2に丸めのprintf()ステートメント%1.2fの出力結果小数* /


する#include <stdio.hの>
に#define PI 3.14159
INTメイン(ボイド)
{
フロート領域、circum、半径。

printf(「何があなたのピザの半径である\ nは?」);
scanf関数( "%のF"、&半径);
面積= PI *半径*半径;
circum = 2.0 * PI *半径。
printf(「あなたの基本的なピザのパラメータは以下の通りです:\ nを」);
printf( "円周=%の1.2f、面積=%の1.2fする\ n"、circum、
領域)
0を返します。

}

 


// --------------次の手順を使用して定数を定義したシステム定数をクリアlimit.h定義し、float.hの

書式#include <stdio.hに>
する#include <limits.hに>
する#include <float.hの>

INTメイン(ボイド)
{
のprintf( "このシステムのいくつかの数の制限:\ n");
printf( "最大のint型:%dは\ nを"、INT_MAX)。
// printfの( "最小の符号なしlong:%LLDの\ nを"、LLONG_MIN)。//我的系统不支持
のprintf( "このシステムの1バイト=%d個のビット\ n"、CHAR_BIT)。
printf( "最大のダブル:%Eの\ nを"、DBL_MAX)。
printf( "最小の通常のフロート:%Eの\ nを"、FLT_MIN)。
printf( "フロート精度=%dの数字\ n"は、FLT_DIG)。
printf( "フロートイプシロン=%電子する\ n"、FLT_EPSILON)。
0を返します。
}

 

 

グループの%グラムに関するいくつかの議論は以下のとおりです。

%0.2グラムない完全2つの状況は、整数として、分割されるべきであり、それは、それが2の中央値と決定することができる、有効数字2桁を参照すると、06が印刷されます。
予約を参照すると、7.98および7.982プリント2桁の10進数は、上記により決定される。例えば、上記の点は、6%6.2dです。

C、別の定めがある:あなたが実際のビット数より少ないビット数を指定した場合、フィールドは自動的に明らか3を参照すると、番号の長さを収容するように拡張され、次の2つを指定し、システムが自動的に3つになります。P71


%fは有効数字6の小数点以下を四捨五入され
、自動的に別の値を選択%のGまたは%F%Eに記載の方法。より-4以下または以上で精度の指標で使用される%電子フォーマット
%のG 0は関係なく、それが書式指定として有効桁の整数は、3.2%の0.2グラムであり、どのくらいの時間の精度の、無効表示されません。33%0.2グラムの出力を有する33.141434234

最初のタイトルいいえ、私は推測:0.0000009979は、%Fで指定され、それは最初に0.000001 -科学的表記に変更された後(有効数字6%fのシステムがあるため四捨五入)、すなわち、1E-006である
理由として1.00E-006は明らかではないが、

私は、コードのいくつかの写真を作った、あなたがで勉強することができます

 


//使用変換指定子、(第二項)のprintfは、変数、定数式であってもよい
の#include <stdio.hの>
に#define PI 3.141593
INTメイン(ボイド)
{
INT =番号5;
フロートエスプレッソ= 13.5;
INTコスト= 3100;
のprintf( "%d個のCEOのエスプレッソの\ N-の%Fカップを飲んだ。"、ナンバー、
エスプレッソ);
のprintf( "PIの値のは、%F \ N-です。"、PI);
のprintf(「さらば! TOO持つ者なた私の親愛なる芸術のため、\ N- ");
のprintf(" %はCの%Dの\のN-」、 '$'、2 *コスト);
0を返します;

}

 

/ *フィールド幅の
第2の変換指定子%2dは、* /それは2のフィールド幅を生成する必要があることを示し、このため、フィールドが自動的にデジタルの長さに適応するように拡張されるべきである3桁の整数です。

する#include <stdio.hの>
PAGES 931の#define
INTメイン()
{
のprintf( "*%D *の\ n"、PAGES)。
printf( "*%の2D *を\ n"、PAGES)。
printf( "*%10D *の\ nを"、PAGES)。
printf( "*% - 10D *の\ nを"、PAGES)。
0を返します。


}

 

いくつかの組み合わせ//float.c--浮動小数点

する#include <stdio.hの>
INTメイン(ボイド)
{
CONSTダブルRENT = 3852.99。

printf( "*%のF *の\ nを"、RENT)。
printf( "*%のE *の\ nを"、RENT)。
printf( "*%4.2fの*の\ nを"、RENT)。
printf( "*%3.1fの*の\ nを"、RENT)。
printf( "*%10.3fの*の\ nを"、RENT)。
printf( "*%10.3eの*の\ nを"、RENT)。
printf( "*%+ 4.2fの*の\ nを"、RENT)。
printf( "*%の010.2f *の\ nを"、RENT)。
0を返します。
}

 


/ *
先頭のスペースを生成する前の値に第2の行指定子スペース印刷出力の同じ幅と同じ正の値と負の値の有効ビットを可能にする(負の値を生成することなく、先頭のスペース)、結果が快適になります。
先行ゼロの第3行は、必要な最小数(ここでは3)を満たすのに十分な産生; 0フラグが先行ゼロで全文字幅を埋めるために使用されるであろう。最後に、同時に0フラグが0と精度指定子である場合に発生しますフラグは無視されます
* /

する#include <stdio.hの>
INTメイン(ボイド)
{
のprintf( "%X%X%#Xを\ n"、31,31,31)。
printf( "**%D **%D **%D **の\ n"、42,42、-42)。
printf( "**%の5D **%の5.3d **%05D **%の05.3d **の\ n"、6,6,6,6)。
0を返します。

}

 

//フォーマット文字列- 0.5フォーマット指定子伝えるのprintf()のプリントのみ5文字を
#includeするに<stdio.h>
の#define宣伝文「!本物の模倣」
のIntメイン(無効)
{
のprintf(「/ 2S%/ \ N- "宣伝文);
のprintf(" / \ N- / 24S% "宣伝文);
のprintf(" / 24.5s%/ \ N- "宣伝文);
のprintf(" /% - 24.5s / \ N- 」、宣伝文);
戻り0;
}

 


不一致変換フロート
/ *
彼らはタイプバイトを入れて、スタック上の最初の値n1〜n4は、長い4バイト、ダブルオクテットを。%Ldの4つのバイトと、その後の指示を読んで、そして時間シンボルの説明に読まない
プリント*ダブル/へのパラメータとして使用されるときにフロート



する#include <stdio.hの>

メインINT(ボイド)
{
フロートN1 = 3.0。
ダブルN2 = 3.0;
長いN3 = 2000000000;
長いN4 = 1234567890;

printf( "%1E%.1E%.1E%.1E \ n"、N1、N2、N3、N4)。
printf( "%のLD%のLDを\ n"、N3、N4)。
printf( "%LD%LD%LD%LD \ n"は、N1、N2、N3、N4)。
0を返します。

}

 

printf関数の値を返し
/ *
出力誤差は、負* /返す場合のprintf()は、印刷された文字の数を返す


する#include <stdio.hの>
INTメイン(ボイド)
{
int型bph2o = 212;
int型のRV、

RV printf関数=( "%D F.がAPOS水沸騰点である\ N-。"、bph2o);
のprintf( "のprintf()関数D印刷された文字のは%\ N-。"、
RV)は、

0を返します;
}

 

 

//打印较长的字符串-三种方法
する#include <stdio.hに>
int型メイン(無効)
{
のprintf( "ここに印刷する一つの方法だ")は、
printf( "長い文字列\ nは。");
printf(「ここ\印刷する別の方法です
長い文字列を\ nは。」);
printf(「ここで印刷する最新の方法だ」
「長い文字列\ nは」);
0を返します。

}

 

いくつかの注意事項とどのような状況下での使用&scanfの()
/ *
少ないパラメータ場合、間違って行くだろう。
%のC、除く複数のフィールドにどのように入力を決定するためにスペース(改行、タブ、スペース)とのscanf()。ダブルユース%のLF。
用い&なしの文字列
(「%のD、Dの%」、およびN-、&M)をscanfの、使用の88121形、入力を実行形式指定子スペースは、次のエントリの前に、スペースをスキップ手段
(のscanf "%dの%のD"、& N、&M); およびscanf( "%d個の%のD" 、&​​N、&M);挙動は同じです。%cは違うだろう、scanf関数( "%cの"、 &CH); 最初の非空白文字に遭遇読み込み


* /


書式#include <stdio.hに>
int型メイン(無効)
{
int型の年齢;
フロート資産;
チャーペット[30]。

printf( "あなたの年齢、資産、およびお気に入りのペットを入力します。\ n");
scanf関数( "%dは%fを"、&年齢、&資産);
scanf関数( "%sの"、ペット);
printf( "%d個の$%2F%sの\ nは。"、年齢、資産、ペット);
0を返します。

}

 


//可変幅の出力フィールド

する#include <stdio.hの>
INTメイン(ボイド)
{
符号なし幅、精密。
int型の数= 256;
重量= 242.5;

printf( "Whatフィールド幅\ nは?");
scanf関数( "%dの"、および幅)

printf( "番号である:%※D:の\ n"、幅、数)。
printf関数は、(「今幅と精度を入力します:\ n」);
scanf関数( "%dの%のD"、および幅、および精度)。

printf( "重量%= * Fを\ n"、幅、精度、重量)
0を返します。

}

 


/ *
二つの整数の最初の入力をスキップ-コピープログラムは、以下の第三の整数nを与える
プログラムは、特定の列(ファイルデータが均一な列に配置されている)内のファイルを読み取る必要がある場合、この関数は非常になり便利な* /

書式#include <stdio.hに>
int型メイン(無効)
{
int型N-;

のprintf( "三つの整数を入力してください:\ N-");
scanfの( "%のD%* D * D%"、およびN-);
のprintf( 「であった%D \ N-の整数最終」、N-);
0を返す
}
ヒント%9dと整列出力形式幅、及び幅以下同様に小さなフィールド幅指定の所望の数が正の数を行います適切な。

 

ます。https://www.cnblogs.com/zxj-262410/p/6691221.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_30410999/article/details/94790227