-
C / C ++のswitchステートメントで変数を宣言できないのはなぜですか?
変数はswitchステートメントで宣言できます。それらを宣言し、switchステートメントの新しいスコープ内で使用する必要があります。たとえば、 例 #include<iostream> using namespace std; int main() { int i = 10; switch(i) { case 2: //some code break; case
-
C / C ++を使用してディレクトリ内のファイルのリストを取得するにはどうすればよいですか?
標準のC++は、これを行う方法を提供していません。次のように、systemコマンドを使用してlsコマンドを初期化できます- 例 #include<iostream> int main () { char command[50] = "ls -l"; system(command); return 0; } 出力 これにより、出力が得られます- -rwxrwxrwx 1 root root 9728 Feb 25 20:51 a.out -rwxrwxrwx 1 root
-
C / C ++でコアをデバッグする方法は?
プログラムの障害が原因でオペレーティングシステムによって終了されると、プロセスはコアダンプします。これが発生する最も一般的な理由は、プログラムがNULLなどの無効なポインタ値またはメモリ領域外の値にアクセスしたことです。そのプロセスの一環として、オペレーティングシステムは、何が起こったかを分析できるように、情報をファイルに書き込もうとします。 このコアは、プログラムの診断とデバッグに次のように使用できます- デフォルトではコアは/proc/ sys/kernelディレクトリにダンプされます。コアをデバッグするには、プログラムを-gオプションを指定してコンパイルする必要があります。コアを実行した
-
C / C ++のセグメンテーション違反とは何ですか?
セグメンテーション違反は、プログラムがアクセスを許可されていないメモリ領域にアクセスしようとしたときに発生します。つまり、プログラムが、オペレーティングシステムがプログラムに割り当てた制限を超えたメモリにアクセスしようとしたとき。 セグメンテーション違反は主に-であるポインタによって引き起こされます 適切に初期化されるために使用されます。 ポイントするメモリが再割り当てまたは解放された後に使用されます。 インデックスが配列の境界外にあるインデックス付き配列で使用されます。
-
コンパイル/リンクプロセスはC/C ++でどのように機能しますか?
C ++プログラムのコンパイルは、3つのステップで構成されています- 前処理 −簡単に言うと、Cプリプロセッサは単なるテキスト置換ツールであり、実際のコンパイルの前に必要な前処理を実行するようにコンパイラに指示します。 #include、#defineなどの前処理ディレクティブを処理します。 コンパイル −コンパイルは前処理されたファイルで行われます。コンパイラは純粋なC++ソースコードを解析し、それをアセンブリコードに変換します。これにより、アセンブリコードをオブジェクトファイルとしてマシンコード(バイナリ)に変換するアセンブラが呼び出されます。これらのオブジェクトファイルは、定義されてい
-
C /C++でのセグメンテーション違反の一般的な理由のリスト
セグメンテーション違反の主な理由は、初期化されていないか、プログラムの範囲外であるか、文字列リテラルを変更しようとしているメモリにアクセスすることです。これらはセグメンテーション違反を引き起こす可能性がありますが、セグメンテーション違反が発生することは保証されていません。セグメンテーション違反の一般的な理由のいくつかを次に示します- 範囲外の配列へのアクセス NULLポインターの逆参照 解放されたメモリの間接参照 初期化されていないポインタの逆参照 「&」(のアドレス)および「*」(間接参照)演算子の誤った使用 printfおよびscanfステートメントの不適切なフォーマット指定子 スタック
-
Cで文字列を整数に変換する方法
まず、strchr()関数を使用して左角かっこ(から文字を抽出します。 char *name="The Matrix(1999)"; char *ps; ps=strchr(name,'('); 次に、角かっこ()内の各文字をchar配列に追加します char y[5]=""; int p; for (p=1;p<strlen(ps+1);p++) { y[p-1]=ps[p]; } y[4]='\0'; 最後に、atoi()関数を使用して結果の文字列を整数に変換します ye
-
Cを使用して、文中の大文字と小文字のスペースを数えます
#include int main() { char str[100],i; int upper = 0, lower = 0, number = 0, special = 0,whitesp=0; printf("enter string"); gets(str); for (i = 0; i < str[i]!='\0'; i++) { if (str[i] >= '
-
Cの変数とキーワード
変数 C言語では、変数は何らかの形式のデータが格納される格納場所です。変数が異なれば、一連の操作が適用されるメモリの量も異なります。 変数名を数字で始めることはできません。アルファベット、数字、アンダースコア「_」で構成できます。 これがC言語で変数を宣言する構文です type variable_name; これがC言語での複数変数宣言の構文です type variable_name1, variable_name2,variable_name3; 以下は、C言語の変数の例です 例 #include <stdio.h> int main() {
-
Cのトークン
トークンはプログラムの最小要素であり、コンパイラにとって意味があります。 トークンの種類は次のとおりです。キーワード、識別子、定数、文字列、演算子など。 キーワードから始めましょう。 キーワード キーワードは事前定義されたCの予約語で、それぞれが特定の機能に関連付けられています。これらの単語は、C言語の機能を使用するのに役立ちます。それらはコンパイラにとって特別な意味を持っています。 Cには合計32のキーワードがあります。 auto ダブル int 構造体 休憩 その他 長い スイッチ ケース 列挙型 登録 typedef char 外部 リターン ユニオ
-
Cのデータ型
Cの変数は、データ型に関連付けられています。各データ型には大量のメモリが必要であり、特定の操作を実行します。 Cにはいくつかの一般的なデータ型があります- int −整数値を格納するために使用されます。 char −単一の文字を格納するために使用されます。 フロート −単精度で10進数を格納するために使用されます。 ダブル −倍精度で10進数を格納するために使用されます。 次の表は、C言語のデータ型を示しています- データ型 バイト 範囲 short int 2 -32,768〜32,767 unsigned short i
-
Cでの型キャスト
型キャストは、あるデータ型を別のデータ型に変換するC言語のメソッドです。 型キャストには2つのタイプがあります。 1。暗黙の型キャスト- この変換はコンパイラーによって行われます。式で複数のデータ型の変数が使用されている場合、コンパイラはデータ型を変換してデータの損失を回避します。 これは、C言語での暗黙的な型キャストの例です。 例 #include <stdio.h> int main() { int a = 10; char b = 'S'; float c = 2.88; &n
-
Cでの演算子のサイズ
sizeof演算子は、Cで最も一般的な演算子です。これは、コンパイル時の単項演算子であり、オペランドのサイズを計算するために使用されます。変数のサイズを返します。あらゆるデータ型、浮動小数点型、ポインタ型変数に適用できます。 sizeof()がデータ型で使用される場合、そのデータ型に割り当てられたメモリの量を返すだけです。 32ビットシステムは異なる出力を表示でき、64ビットシステムは異なる同じデータ型を表示できるように、出力はマシンごとに異なる可能性があります。 これがC言語の例です 例 #include <stdio.h> int main() { int a = 16;
-
Cのストレージクラス
C言語では、変数と関数の機能は、q変数または関数の可視性やスコープなどのストレージクラスによって記述されます。 C言語のストレージクラスには、自動変数、外部変数、静的変数、レジスタ変数の4種類があります。 自動 自動ストレージクラスは、すべてのローカル変数のデフォルトのストレージクラスです。関数が呼び出されたときに作成されます。関数の実行が完了すると、変数は自動的に破棄されます。 これらは関数に対してローカルであるため、ローカル変数とも呼ばれます。デフォルトでは、コンパイラによってガベージ値が割り当てられます。 スコープ- 自動変数は、関数ブロックのローカル変数です。 デフォルト値-
-
Cでの事前インクリメント(または事前デクリメント)
インクリメント演算子は値を1つ増やすために使用され、デクリメントは逆の増分で機能します。デクリメント演算子は値を1つ減らします。 これがC言語のプリインクリメント演算子の構文です ++variable_name; これがC言語のプリデクリメント演算子の構文です --variable_name; pre-increment演算子とpre-decrement演算子の違いを見てみましょう。 プリインクリメント- 変数に値を割り当てる前に、値は1ずつ増加します。 これは、C言語での事前インクリメントの例です。 例 #include <stdio.h> int main() { &
-
Cの「extern」キーワード
外部変数は、グローバル変数とも呼ばれます。これらの変数は関数の外部で定義されます。これらの変数は、関数の実行中にグローバルに使用できます。グローバル変数の値は、関数によって変更できます。 「extern」キーワードは、外部変数を宣言および定義するために使用されます。 スコープ- それらはどの関数にも拘束されません。それらはプログラムのいたるところにあります。つまり、グローバルです。 デフォルト値- グローバル変数のデフォルトの初期化値はゼロです。 生涯- プログラムの実行が終了するまで。 C言語のexternキーワードに関するいくつかの重要なポイントがあります 外部変数は何度でも
-
Cの関係演算子と論理演算子
関係演算子 関係演算子は、C言語で2つの値を比較するために使用されます。 2つの値の関係をチェックします。関係がtrueの場合は1を返しますが、関係がfalseの場合は0を返します。 これがC言語の関係演算子の表です 演算子 演算子名 == 等しい より大きい 未満 != 等しくない = 以上 <= 以下 これがC言語の関係演算子の例です 例 #include <stdio.h> int main() { int x = 10; int y = 28; &n
-
Cのビット演算子
ビット演算子は、2つの変数に対してビットレベルの演算を実行するために使用されます。これがC言語のビット演算子の表です 演算子 演算子の名前 & ビットごとのAND | ビットごとのOR ^ ビット単位のXOR 〜 ビット単位の補数 < 左にシフト 右シフト これがC言語のビット演算子の例です 例 #include <stdio.h> int main() { int x = 10; int y = 28; int i = 0; &nbs
-
C / C ++のfseek()
C言語のfseek()は、ファイルポインタを特定の位置に移動するために使用されます。オフセットとストリームはポインタの宛先であり、関数パラメータで指定されます。成功すると、ゼロを返します。成功しなかった場合は、ゼロ以外の値を返します。 これがC言語でのfseek()の構文です int fseek(FILE *stream, long int offset, int whence) fseek()で使用されるパラメータは次のとおりです ストリーム- これは、ストリームを識別するためのポインタです。 オフセット- これは、その位置からのバイト数です。 いつ- これは、オフセッ
-
Cのftell()
C言語では、ftell()は、ファイルの開始を基準にして、指定されたストリームの現在のファイル位置を返します。この関数は、ファイルの最後にファイルポインタを移動した後、ファイルの合計サイズを取得するために使用されます。ロングタイプで現在の位置を返し、ファイルには32767バイトを超えるデータを含めることができます。 これがC言語でのftell()の構文です long int ftell(FILE *stream) ftell()で使用されるパラメータは次のとおりです ストリーム- これは、ストリームを識別するFILEオブジェクトへのポインタです。 これはC言語でのftell()