問題タブ [fgets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Cのfgets()関数
バッファオーバーフローのために取得せずにfgetsを使用するように誰もが私に言ったことを知っています。ただし、の3番目のパラメータについて少し混乱していますfgets()
。私が理解しているように、fgetsは以下に依存しています。
char* str
入力が保存される場所へのptrです。
num
読み取る文字の最大数です。
しかし、何FILE *stream
ですか?ユーザーに文字列(文など)の入力を求めるだけの場合は、「stdin
」と入力するだけでよいですか?
そして、私FILE *stdin
は上部、近くに入力する必要がありmain()
ますか?
c - Cのfgetsは、ファイルからの文字列ではなく、文字列で機能するように誘導できますか?
具体的には、ここのコードサンプルはうまく機能しますが、文字列がファイルに保存されている場合に限ります。
生成された文字列(文字列変数に格納されている)を処理するために必要な場合がありますが、ファイル構造へのポインターであるため、fgetsの3番目のパラメーターが文字列変数で機能するように説得するのに問題があります。
または、文字列で使用できるfgetsと同等の機能があるのでしょうか。
助言がありますか?ありがとう!
c - c/cocoaでのUTF-8文字列の読み取りと出力
Objective-c / cocoaアプリでは、c関数を使用してテキストファイルを開き、1行ずつ読み取り、サードパーティの関数でいくつかの行を使用しています。疑似コード:
これは、入力ファイルに特殊文字(アクセントやUTF-8 BOMなど)が含まれ、ライブラリ関数がマングル文字を出力するまでは正常に機能します。
ただし、これを行うと:
その後、すべて正常に動作し、文字列が正しく出力されます。
私がし[NSString...
ていないことをしているその行は何ですか?行が最初にフェッチされる方法に何か問題がありますか?それともまったく別のものですか?
c - コマンドラインから返された空の出力をキャプチャし、空の場合はメッセージを表示します
スクリプト「 check.sh 」が何も返さない場合、ウィンドウに何かを出力する必要があります。これは、スクリプトからの出力が返されない場合の検証を意味します。
check.sh には何も含まれていません。これは、実行時に何も返さない単なる空の sh ファイルです。空のshファイルでテストしています(その理由である正確なスクリプトを表示できません)。
私が印刷したいのは、check.shが何も返さないときにCを介して「何かを設定してください」のようなメッセージです。
"\n","\r","\0",NULL でバッファー行をチェックしました (以下のモジュールをチェックしてください) 。
モジュールをexecute_command("sh check.sh")として呼び出します
これが私のモジュールです
c - 構造体のメンバーである文字配列への書き込み
ここに質問を投稿するのはこれが初めてです。似ているものを検索しましたが、見つかったものはありませんでした。
これが私のヘッダーのスニペットです:
そして、これが私のメイン関数からのスニペットです:
セグメンテーション違反が発生し続けます。'memset()'行をコメントアウトすると、セグメンテーション違反が発生する前に、入力ファイルから正確に3行を読み取ることができます。
ただし、「lineRead->buffer」をローカルのchar[]に置き換えると、入力ファイルを完全に読み取ることができます。
ここで構造体について理解していないことは何ですか?私が欲しいと思うのは、構造体内のchar []の先頭へのポインターですが、明らかにこれは起こっていることではありません。
編集:申し訳ありませんが、指定するのを忘れました:ここでは動的メモリを使用していません。
c - fgets-cの最後の行を省略しています
基本的に私は自分のコードに問題があります-これは宿題なので、明らかな理由でここに投稿したくないです。私がそうすることが本当に重要になった場合、私はとても立ち往生しているので、そうしなければなりません。
私は2つのテキストファイルを読んでいて、区切り文字もあります。これらの値はコマンドラインから取得されます。この場合の区切り文字はxxであると想定してください。
問題は、私のコードが最後の行を正しく実行しないことです
私はの出力を取得します
私がすべてのコードを投稿しなくても、私が間違っていることを皆さんが収集できることを願っていますが、私のロジックはこの原則に基づいて機能します。
c - fgets で読み取った行の strcmp
2 つの文字列を比較しようとしています。1 つはファイルに保存され、もう 1 つはユーザー (stdin) から取得されます。
サンプルプログラムは次のとおりです。
このプログラムでstrcmp
は、入力が の場合、 は値 -1 を返します"bob"
。どうしてこれなの?平等であるべきだと思いました。どうすればそうなるのですか?
c - fgets の使用時に余分なスペースを無視する
stdin で fgets を使用して一部のデータを読み取ります。最大長は 25 です。このコードで実行しているテストの 1 つでは、必要なデータの後に数百のスペースがあります。プログラムが失敗します。
fgets を使用するときにこれらの余分なスペースをすべて無視して次の行に移動する方法について、誰かが私にアドバイスできますか?
c - fgets()は、返す文字列を常にnullで終了しますか?
これは安全ですか?fgets
バッファをnullで終了しますか、それとも呼び出し後および呼び出し前に20バイト目をnullに設定する必要がありますfgets
かclean
?