プログラミングC: 投稿 3 – 入力Cで行われた
コンテンツ
以前の記事で, 我々はいくつかの情報画面に印刷する番組の数と知り合いになりました. この記事で、私たちはCでの生産を入力する方法についての詳細を学びます.
1. フォーマット文字列データ
導入する前に, 私はいくつかインポートする形式およびエクスポートについてお話します変数のデータ. ここで兆候が説明されているフォーマット:
- %℃ : 単一文字
- %S : チェーン
- %D : お整数 10 著しい
- %F : 浮動数 (最高経営責任者(CEO 5.54 プリントアウトします 5.540000)
- %と : 浮動数 (指数表記で)
- %グラム : 浮動数 (最高経営責任者(CEO 5.54 印刷はプリントアウトします 5.54)
- %X : 六角符号なし整数 (コンタクト 16)
- %ザ· : 符号なし8進整数 (コンタクト 8)
- L : %dで使用される接頭辞, %X, %長整数を示すために、O (例えば%LD)
2. printf関数を使用してデータをエクスポート
私たちは、関数を使用します printfの コンソールにデータをエクスポートする (印刷から印刷を意味し、). 上記のフォーマット文字列と組み合わせること, 私たちは、簡単な例は、以下の考慮します.
例 1:
#include <stdio.h> int main() { int a = 12; float b = 13.5; char c = 'Q'; long d = 3454; char* s = "nguyenvanquan7826"; // khai bao kieu chuoi printf("Vi du ve su dung lenh printf\n"); printf("Tong cua %d va %f la %f \n", a, b, a+b); printf("Tich cua %d va %ld la %ld \n", a, d, a*d); printf("Ky tu c la: %c \n", c); printf("Chuoi s la: %s \n", s); printf("Dinh dang so mu cua b la %e \n", b); printf("So he 16 va he 8 cua %d la %x va %o \n", a, a, a); printf("Ma ASCII cua %c la %d", c, c); return 0; }
私はいくつかの制御文字を使用している上に (\N – ラインダウン) 以前の記事で述べました, ない私をどうかは確認することができます. あなたは、プログラムを実行し、あなた自身のコメントを描きます.
彼の説明 1 私たちの出版物を明確にする声明.
書式文字列は引用符で囲まれている: “”. 型の変数は、それぞれのフォーマットに対応しています, 別のタイプは、エラーになります場合には.
あなたはまた、我々は形式%dの中で、また、文字数値コードに文字コードを印刷できるように、整数と文字のASCIIコードを介して相互に持っていることに注意してくださいフォーマット%Cを介し. しかし、変数の性質は変化しません. Vdの中のCのASCIIコードでコマンドのC自然整数が、それでもchar型の変数であります.
例 2:
#include <stdio.h> int main() { int a = 12; float b = 13.5; char c = 'Q'; long d = 3454; char s[] = "nguyenvanquan7826"; // khai bao kieu chuoi printf("%6d %5.3f %.3f \n", a, b, a+b); printf("%-5d %5ld %5ld \n", a, d, a*d); printf("%5c \n", c); printf("%30s \n", s); return 0; }
あなたはこの例を見て、私たちは形式%Dを使用します, %Fが、%6dの途中に挿入, %5.3F. 次のようにそれの意味があります:
- %5℃ : エクスポート文字幅 5
- %5D : 幅整数 5
- %20S : 輸出チェーン幅 20
- %5.3F : 実際の幅をエクスポート 5 含めて 3 カンマの後の数
- %-5D : 幅整数 5 しかし、左を整列
あなたがプログラムを実行する, さらに結果を表示するビュー. THであれば私たちの小さなサイズの幅、星の数の長さ? 例えば、我々が持っているいくつかのint型、A = 1234 しかし、唯一の%2dに, 以下のための明確な 2 スペースは缶よりも小さいです 4 桁が、結果はいっぱいにまだあります. あなたは試すことができます.
例 3:
私たちは、変数は任意の誕生日を示していると仮定している問題を置きます (例えば右= 12, タン= 8, 男性= 1992). フォーマットをプリントアウトしてくださいDD / MM / YYYYです. 我々は結果をプリントアウトしなければならないことを意味 12/08/1992.
#include <stdio.h> int main() { int ngay = 12; int thang = 8; int nam = 1992; printf("KQ: %02d/%02d/%04d\n", ngay, thang, nam); return 0; }
上記の, あなたは私たちが使用気づきます %02D すなわち星? Nhiáになります印刷された数であります 2 数字, 場合よりも少ないと元の番号 2 追加されます 0 十分にフロント 2 数字. 例えば号 8 成功します 08. あなたは%05Dを使用している場合になります 00008.
3. scanf関数を使用してデータを入力します。
前の例では、, プログラムは唯一の所定の値で動作しますので、我々だけで変数を宣言して、フレキシブルなどではなく、変数に値を代入します, 私たちは、コードを修正する必要が異なるデータを操作したいです, それは良いプログラムではありません. ソフトウェアプログラムを使用することができます値の多くの異なるセットのためとされています.
したがって、データは、使用されるソフトウェアに含まれるキーボードに特異的かつシンプルなデータ入力であります. 私たちは、コマンドを使用します。 scanf関数 キーボードからデータをインポートします (スキャンからスキャンし、我々は、キーボードからのLEUをスキャンするために使用するデータを意味し).
例 1:
#include <stdio.h> int main() { int a; float b; printf("Nhap so nguyen a = "); scanf("%d", &a); printf("Nhap so thuc b = "); scanf("%f", &b); printf("a = %d \t b = %.3f", a, b); return 0; }
コマンドの使用 scanf関数 データ入力のための文字列形式と組み合わせコマンドによりデータのようになります。 printfの.
文字を忘れないように注意してください & 各変数入る前に. 間違ってないと.
例 2:
/* Tinh dien tich hinh chu nhat */ #include <stdio.h> int main() { int a, b; printf("Nhap chieu dai, chieu rong: \n"); scanf("%d%d", &a, &b); printf("Dien tich HCN: %d\n", a * b); return 0; }
上記の例で, あなたは私たちが使用することができます参照してください 1 scanfのコマンドでは、いくつかの変数のためのデータを入力します, それぞれ対応する変数 1 特定のフォーマット.
4. C言語で文字列を入力してください
4.1 エラー文字列scanf関数をインポートします
あなたがチェーンの前にスペースを入力するか、入力しない場合、再度文字列を入力することができないことを参照してください。文字列を入力するようにscanf関数を使用している場合. あなたが信じていない場合は、後にプログラムを実行しようとすることができます:
#include <stdio.h> int main() { int tuoi = 0; // khai bao chuoi co toi da 30 ky tu char ten[30], tenNguoiYeu[30]; printf("Ho va ten cua ban ten la gi? "); scanf("%s", ten); // nhap chuoi khong can dau & printf("Ban bao nhieu tuoi roi? "); scanf("%d", &tuoi); printf("Nguoi yeu cua ban ten la gi? "); scanf("%s", tenNguoiYeu); printf("\n====\n"); printf("Ten: %s \nTuoi:%d \nNY:%s \n", ten, tuoi, tenNguoiYeu); return 0; }
結果は以下に示すように、愛の年齢と名前を入力しないことです.
その理由は、読み取り専用データには、スペースをscanfのないことです (再生する方法, タブ, 入力する, ...) あなたが唯一の唯一の方法は試合前に最初の文字列を取得するように距離がキーボードバッファに格納されます (単語 グエン), 各スペースの後に, 次の値は次のターンのデータ型と一致している場合、それは常にそれらに割り当てられます、あなたは再び入力することはできません. の あなたの 材料の種類は、受信べきではありません, tenNguoiYeu 受信した値の次の値が単語で受信します から.
4.2 浮動コマンドの現象
現象このような現象は、ドリフトコマンドと呼ばれている. あなたは今までに、すぐにこの現象も発生することを後にするので、文字列を入力して作成した場合 scanf関数 単に番号を入力するときに入力したキーを押したときに読めない正しい形式で番号を読み取ります (文字を入力するか、また、チェーンと見なすことができます), それは、それが常に文字列に割り当てられているので、文字は文字列を入力して参照バッファに格納され、文字列に入力値を読み込む際に、バッファで見つかっている.
スペースを含む文字列を入力するには (スペース) 我々は、関数が取得する使用.
私たちはコマンドでキーボードバッファをクリアする必要があり、文字列の前後に洗浄しなかったときのコマンドを入力するには fflushは(標準入力); すぐに入力した後.
#include <stdio.h> int main() { int tuoi = 0; // khai bao chuoi co toi da 30 ky tu char ten[30], tenNguoiYeu[30]; printf("Ho va ten cua ban ten la gi? "); gets(ten); // nhap chuoi khong can dau & printf("Ban bao nhieu tuoi roi? "); scanf("%d", &tuoi); fflush(stdin); printf("Nguoi yeu cua ban ten la gi? "); gets(tenNguoiYeu); printf("\n====\n"); printf("Ten: %s \nTuoi:%d \nNY:%s \n", ten, tuoi, tenNguoiYeu); return 0; }
あなたは、Linuxを使用する場合は、 fflushは(標準入力); 動作しません, 次のように入力して修正することができます 1 すぐに入力した後、一時的なシーケンス. 文字だけを削除するには、この一時的なチェーンエントリ, バッファ内の余分な文字列を次のように (Windows上で実行する場合は、この方法を使用することも可能).
#include <stdio.h> int main() { int tuoi = 0; // khai bao chuoi co toi da 30 ky tu char ten[30], tenNguoiYeu[30], temp[255]; printf("Ho va ten cua ban ten la gi? "); gets(ten); // nhap chuoi khong can dau & printf("Ban bao nhieu tuoi roi? "); scanf("%d", &tuoi); //fflush(stdin); gets(temp); printf("Nguoi yeu cua ban ten la gi? "); gets(tenNguoiYeu); printf("\n====\n"); printf("Ten: %s \nTuoi:%d \nNY:%s \n", ten, tuoi, tenNguoiYeu); return 0; }
5. printf関数について少し説明, scanf関数とstdio.hの
5.1 文字Fでのprintfやscanf
あなたが知っているように 印刷 意味する に, スキャン た スイープ または入力することで呼ばれています. なぜ彼らは手紙を持っています F バックフォームへ printfの と scanf関数 ?
単語 F この意味は、 フォーマット (フォーマット). あなたは私たちが変数の値をインポートまたはエクスポートしている見ることができるようにフォーマットされています % 何か例えば%dは整数であります, %fは実数であります,… そして、手紙 F これは有意義なものです.
5.2 ライブラリstdio.hの ?
これまでに、すべてのプログラムで, 我々は常に持っています #include <stdio.h>
, だから、それは何ですか?
#include
つまりは、使用何かを宣言します我々のプログラムを含むことを意味します, しかし、ここでライブラリを使用することです stdio.h
そう stdio.hに 何? STD スタンド 標準 , で スタンド 入力, ザ· スタンド 出力, 時間 スタンド ヘッダ (ヘッダ – ヘッド, トップに – それは、プログラムの先頭で宣言されているので、). だから、意味します 標準入出力 – インポート標準出力. 私たちは、それがプログラムの標準のインポートおよびエクスポートのための図書館サービスであることを理解します. 入力、標準出力は画面にキーボードおよび出力から入力されました. ファイルのインポートとエクスポートからのインポートなど、多くの情報源もあります, カーソルからのインポート,… プリンタへの出力, 出力ファイル,… しかし、彼らが考えられ キーボードと画面は、インポートおよびエクスポートの標準システムであり、.
エクササイズ
- いくつかのいずれかでプログラムを書き、値aを印刷2, ザ·3, ザ·4
- キーボードから読み込むプログラムを書きます 3 整数の日実行, 月, 「DD / MM / YYYY」の形式で画面に出力.
- プログラムを読み書き 2 整数との結果をプリントアウト (+), 引き算 (-), 乗算 (*), 除算 (/). レビューの結果は分割します 2 整数.
- 球の半径にプログラムを書きます, 計算し、印刷領域, これは球の体積.
ガイド: S = 2、V = ^4πR (4/3)πR^ 3.- 番号を入力した秒数です, GIO下で製造分と時間形式の秒数を変更します:プット:輝きます, 各コンポーネント 2 数字. 例 3661 = 01:01:01.
長整数のサイズは、サーリットルを来て、新しい接頭辞を必要としません, 私は、このようなプログラムを実行しよう 2 その後、%5dとの%5Dが、故障していないjに手紙リットルを削除, すべて 2 KQプログラムは同じです, 彼の偉大なポスト先生の方法により、, 私jは不明のような初心者のために理解することは非常に簡単! =)
あなたのデータ型は、フロントLで接頭辞ドラゴンのとき.
私も不思議です
あなたは再びそれを実行したときに、なぜ、CTザが動作を停止しました?? T_T
#含まれる
メインint型()
{
文字テン[30],Dia_chi[50],So_thich[100];
int型の右[31],はしご[12],男性;
printfの(“彼は10 “);
取得します(十);
printfの(“彼はカイ “);
取得します(Dia_chi);
printfの(“生年月日 “);scanf関数(“%D”,&右);
printfの(“エレベーターの誕生 “);scanf関数(“%D”,&はしご);
printfの(“男性誕生 “);scanf関数(“%D”,&男性);
fflushは(標準入力);
printfの(“以下のような “);取得します(So_thich);
printfの(“\============== nは nここで、n”);
printfの(“十: %nDia sの: %S ネベン誕生:%D トン%D トン%D トン NSOティク: %S”,十,Dia_chi,So_thich,右,はしご,男性);
リターン 0;
}
私はそれが動作を停止したが、彼は私に先生の世帯を説明した理由DCを修正します@@, ここでは、もう一度修正したソースファイルがあります:
#含まれる
メインint型()
{
文字テン[30],Dia_chi[50],So_thich[100];
int型の右,はしご,男性;
printfの(“彼は10 “);
取得します(十);
printfの(“彼はカイ “);
取得します(Dia_chi);
printfの(“生年月日 “);scanf関数(“%D”,&右);
printfの(“エレベーターの誕生 “);scanf関数(“%D”,&はしご);
printfの(“男性誕生 “);scanf関数(“%D”,&男性);
fflushは(標準入力);
printfの(“以下のような “);取得します(So_thich);
printfの(“\============== nは nここで、n”);
printfの(“十: %nDia sの: %Sの nを”,十,Dia_chi);
printfの(“生年月日:%D /%D /%D nは”,右,はしご,男性);
printfの(“以下のような: %S”,So_thich);
リターン 0;
}
私はあなたを持って前に、彼はコメントで言いました. あなたは、配列の退職を宣言してください.
あなたは間違った変数や変数の日付の月を宣言しているので. 日付は数値です, 私はすぐに宣言する[31] 意味する 1 配列 31 の名前のように[30] た 1 プレート 30 文字 (チェーンにマージ). すぐにintに変更, はしご, 男性. 即ち
電子eにFacebookのための缶をダーリンは、あなたは、いくつかのことを質問してくださいません. あなたは、言語セクションCについて学んでいる学生です. eはまだ知らないので、多くの学校でコミュニケーションの問題に. 彼は唯一の先生の先生を追加することを願って. EMのおかげ
あなたも、あなたのメールを送ることができます: nguyenvanquan7826@gmail.com NHE.
あなたが私に言うことができることはいくつかのコードセクションを投稿してください 5 そうではありません?
#含まれる
#含まれる
#含まれる
//———————————————————————-
メインint型() {
そうフロート;
printfの(“\N N tNhap 1 そう: “); scanf関数(“%F”, &そう); fflushは(標準入力);
printfの(“\nは入力された単なる平均Phuongさんでした:\T T%7.2f”, 捕虜(そう, 2));
printfの(“\N 先ほど入力したよりも、Phuongさんを設定し、:\T T%7.2f”, 捕虜(そう, 3));
printfの(“\N N N N N N N N N N N”);
リターン 0;
}
//———————————————————————
メインint型() {
int型の右, はしご, 男性;
printfの(“右をクリックします, 月と年: \N”); scanf関数(“%D%D%dの”, &右, &はしご, &男性);
システム(“CLS”);
printfの(“右, 月と年 (DD / MM / YYYY) ちょうど%02D / 02D%/%4dのように入力”, 右, はしご, 男性);
printfの(“\N N N N N N N N N N N”);
リターン 0;
}
//———————————————————————
メインint型() {
int型A, B;
printfの(“\N N tNhap 2 そうグエン, B: “); scanf関数(“%D%D”, &ザ·, &B); fflushは(標準入力);
システム(“CLS”);
printfの(“\N N Tvoi GIAトライ%dを共同して知っています, 比較Bは%D試験の値を有します:”, ザ·,B);
printfの(“\N N 取ります + B =%d個の N N う – B =%d個の N N う * B =%d個の N N う / B =%dの”, ザ· + B, ザ· – B, ザ· * B, ザ· / B);
もし (ザ· % B == 0) {
printfの(“\N N TSO Bで割り切れます”);
}
ほかに {
printfの(“\N N TSO bより割り切れません, %dの / %D%d個のDuoc, あなた%D”, ザ·, B, ザ· / B, ザ· % B);
printfの(“\N N N N N N N N N N N”);
}
リターン 0;
}
//———————————————————————
メインint型() {
フロートR;
printfの(“\N N tNhap半径r: “); scanf関数(“%F”, &R); fflushは(標準入力);
システム(“CLS”);
printfの(“\N N tVoi半径R =%.2f, 球Sラのエリア: %.2F”, R, 4 * 3.14 * 捕虜(R, 2));
printfの(“, 球ラの体積V: %.2F”, 4 * 3.14 * 捕虜(R, 3) / 3);
printfの(“\N N N N N N N N N N N”);
リターン 0;
}
//———————————————————————
メインint型() {
int型シャイン;
printfの(“\nは n秒の合計数の tNhap: “); scanf関数(“%D”, &輝きます); fflushは(標準入力);
システム(“CLS”);
printfの(“\N N tVoi合計%d秒のために, これは、HHに従ってフォーマットされます:ミリメートル:ssのラ: %02D:%02D:%02D”, 輝きます, 輝きます / 3600, (輝きます % 3600) / 60, 輝きます % 60);
printfの(“\N N N N N N N N N N N”);
リターン 0;
}
注意:
– 画面の消去システムを過ごすために命じられました(“CLS”), 加えて、あなたは、#includeの#includeを追加する必要があります .
– 同様に, いくつかのパワーを計算するためPOW機能を過ごすために, あなたはNHEに#includeしています. 最高経営責任者(CEO: 累乗へ 4 ターニングを示す図形, その後、私たちは捕虜をノック(ザ·, 4).
– より深く理解するためには、氏の泉NHEを尋ねます.
あなたは、コードを提出するオンラインcode.cachhoc.netドットコードを行くNHE. あなたが右の2件の虚偽をした知っているだろう.
#含まれる
メインint型()
{
int型A,HH,PP,SS;
= 3666;
HH = A / 3600;
PP =(%3600)/60;
SS =(%3600)%60;
printfの(“0%D:0%D:0%D”,HH, PP, SS);
リターン 0;
}
何の広告ビデオチュートリアルはありません?
私は例であなたを求めます 2 長さは、その試合の幅値を入力する矩形の領域は数字そのSIRの面積長い文字列であります
偽であるためにあなたの仕事をインポートまたはエクスポートすることができ、それは非常に大きな数を出力します. あなたは訪問することができます https://chamcode.net テストし、光演習を行うには.
char値を変換できません。 * VDで 1 (2. printf関数を使用してデータをエクスポート).
私は、異なるデータ型のため、これらのフォーマットを見つけるために彼女に尋ねたので、データでは%D%F%〜約言います (例えば : ダブル, long int型, unsigned char型, …) どこ先生 ?
あなたは、GoogleのNHEの詳細を見つけることができます. あるいは、このリンクを参照してください: https://codeforwin.org/2015/05/list-of-all-format-specifiers-in-c-programming.html
その長さや幅の年齢を入力するとき、彼らはそれ以上の状態を測定する必要があります 0 しかし先生。.
はい, しかし、ここであなたはかなりそれに焦点を当てていません.
私は例であなたを求めます 1 異なるchar型のサーNTN対のchar *?
charが文字型であります, タンク * 文字列または文字ポインタ.
=(( Cについては知らなかったこれらの若い人たちのための方法はありません, しかし、ことはできませんが、あなたのコードはあります. あなたは、各運動を行います 2, 私が知らない他のポストから遠く, いくつかの確認は、あなたが帽子を計算したい見ました 2,3,4 場所を確認CHAすべてのEM捕虜捕虜にそれを使用する必要があります。. 場合にのみ、彼はそれについていくつかの新しいDOを知っていました , また、あなたが行うことはできません=(( 非常に悲しいです
^ 2 * aを=, ^ 3 = * * A. POWを使用する方法 ?
私はあなたに感謝します, 新しい子供たちは学年で学びます 9 すべきである…. =))
#含まれる
メインint型()
{
木のint, プット, 輝きます;
printfの(“今の時間を入力します。:\nNhap今プット:\今秒のnEnter数:\N “);
scanf関数(“%D%D%dの”, &GIO, &プット, &輝きます);
printfの(“KQ: %dgio%dphut%dgiay”, GIO, プット, 輝きます);
リターン 0;
}
あなたは訪問することができます https://chamcode.net NHE提出します.
コードしてください 5 見る
だから自分でやる.
// ファミリールームまでの時間:プット:輝きます
#含まれる
メインint型()
{
int型A;
printfの(“ルールの数を入力してください:\N”);
printfの(“靴を比較する: “);
scanf関数(“%D”, &ザ·);
int b = a-(a / 3600)*3600;
int c = b-(b / 60)*60;
printfの(“\r =========最終結果========= n”);
printfの(“決定後の時間: %02D:%02D:%02D”, a / 3600, b / 60, ℃);
リターン 0;
}
あなたは入ってくることができます https://chamcode.net NHE提出します, ドットシステムを持っています.
先生、の根を計算する方法 1 数そう先生
SQRTを使用して(X) math.hライブラリで大丈夫.
マイクロシステムに関するlabviewから実際の数値を取得したい場合は、CCSプログラムでそれを使用する必要があります: scanf関数 , fgetsの , 取得します . IF????/
私はマイクロプロセッサをやっていないので、これはわかりません.
ねえ、何か聞いてもいいですか?, レッスン中の場合にのみcを学びました 3 とチア 2 次に、整数は実際のスタイルで新しい変数に分割されます,私はcthucThuong = a / bを使用します; 大丈夫ですか?? もしそうなら、ライブラリ関数を追加すれば違いがあります? なぜなら 2 結果私はkが異なると思います? あなたが助けてくれることを願っています
分割した場合 2 実数の結果を得るための相互の整数を押す必要があります. 分かりますか 投稿 4 数学について, オペレーター もっと知るために.
素晴らしいです
再び授業時間
#含まれる
メインint型()
{
整数時間,M,S,ザ·;
printfの(“一致するn”);
scanf関数(“%D”, &ザ·);
h=a/3600;
m=(〜h*3600)/60;
s=a-(m*60+h*3600);
printfの(“%02D:%02D:%02D”,時間,M,S);
リターン 0;
}