Cのテキストファイルのヘッダーの読み取りをスキップします

ウィルC

ファイルからデータを読み込んでいますorderedfile.txtこのファイルには、次の形式のヘッダーが含まれている場合があります。

BEGIN header

       Real Lattice(A)               Lattice parameters(A)    Cell Angles
   2.4675850   0.0000000   0.0000000     a =    2.467585  alpha =   90.000000
   0.0000000  30.0000000   0.0000000     b =   30.000000  beta  =   90.000000
   0.0000000   0.0000000  30.0000000     c =   30.000000  gamma =   90.000000

 1                            ! nspins
25   300   300                ! fine FFT grid along <a,b,c>
END header: data is "<a b c> pot" in units of Hartrees

 1     1     1            0.042580
 1     1     2            0.049331
 1     1     3            0.038605
 1     1     4            0.049181

また、ヘッダーが存在せず、データが最初の行から始まる場合もあります。データを読み込むための私のコードを以下に示します。データが1行目から始まる場合は機能しますが、ヘッダーが存在する場合は機能しません。これを回避する方法はありますか?

int readinputfile() {
   FILE *potential = fopen("orderedfile.txt", "r");
   for (i=0; i<size; i++) {
      fscanf(potential, "%lf %lf %*f  %lf", &x[i], &y[i], &V[i]);
   }
   fclose(potential);
}
アンドレ・カンプリング

次のコードは、fgets()使用して各行を読み取ります。各行について、sscanf()を使用して文字列をスキャンし、double変数に格納します。ideoneで(stdinを使用した)
実行例を参照してください

#include <stdio.h>

int main()
{
   /* maybe the buffer must be greater */
   char lineBuffer[256];
   FILE *potential = fopen("orderedfile.txt", "r");

   /* loop through every line */
   while (fgets(lineBuffer, sizeof(lineBuffer), potential) != NULL)
   {
      double a, b, c;
      /* if there are 3 items matched print them */
      if (3 == sscanf(lineBuffer, "%lf %lf %*f %lf", &a, &b, &c))
      {
         printf("%f %f %f\n", a, b, c);
      }
   }
   fclose(potential);

   return 0;
}

指定したヘッダーで機能していますが、ヘッダーに次のような行がある場合:

 1     1     2            0.049331

が表示され、この行も読み取られます。別の可能性は、指定されたヘッダーにある単語が存在するEND header場合BEGIN headerその単語を検索するか、行数がわかっている場合は行数を使用することです。
サブ文字列を検索するには、関数strstr()を使用できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Cでテキストファイルを読み取り、最初の行をスキップします

分類Dev

ヘッダーしかない場合はファイルの読み取りをスキップし、MultiResourceItemReaderを使用してヘッダーとデータを含む残りのファイルの読み取りを続行しますか?

分類Dev

以下のアプローチでコアJavaを読み取りながら、CSVファイルのヘッダーをスキップします

分類Dev

テキスタイルのbegand end()括弧内のテキストを検索し、バッファーに読み取り/印刷します。Cで

分類Dev

CSVファイルを読み取って検索し、複数のテキストボックスにロードし直します(ヘルプ/混乱)

分類Dev

テキストファイルの読み取り中に特定の行数をスキップする-BufferedReaderJava

分類Dev

Spark2.3.0ヘッダーオプションが機能しないテキストファイルの読み取り

分類Dev

テキストファイルの読み取り中にVBが行をスキップする

分類Dev

テキストファイルリーダーは最初の行のみを読み取ります

分類Dev

2行目からファイルを読み取るか、ヘッダー行をスキップします

分類Dev

txt ファイルの最初の 4 行をスキップし、残りを分割して読み取ります

分類Dev

フラットテキストファイルを読み取り、Pythonを使用してパターンの特定のリストを置き換えます

分類Dev

テキストファイルの内容を読み取り、単語のインデックスを値に返すプログラムを作成します

分類Dev

Sparkデータフレームはヘッダーなしでテキストファイルを読み取ります

分類Dev

zcatは、圧縮ファイルからの読み取り中に最初の行のストリーミングをスキップします

分類Dev

数値のテキストファイルを読み取り、C ++で整数の配列に格納します

分類Dev

テキストファイルを読み取り、それらのファイルのみを別のフォルダに移動します

分類Dev

テキスト処理-2つのテキストファイル:1つのファイルからブロック行を読み取り、別のテキストファイルの文字列の後に追加します

分類Dev

テキストファイルからリストボックスC#までのすべての行を読み取ります

分類Dev

Cでテキストファイルを読み取り、行を複数の変数に分割します

分類Dev

テキストファイルを読み取り、c#でテキストファイルの要素に個別にアクセスします

分類Dev

テキストファイルを読み取るときに最後のx行をスキップする

分類Dev

電子メールのテキストファイルを読み取り、Javamail MimeMessageに変換します

分類Dev

Automatorを使用してテキストファイルを読み取り、コンテンツを別のフォルダーにコピーします

分類Dev

JOptionPaneからユーザーの入力を読み取り、テキストファイルに保存します

分類Dev

Pythonスクリプトのパフォーマンスの問題:テキストファイルを読み取り、重複を削除します

分類Dev

PySpark:newAPIHadoopFileを使用して、複数行のレコードテキストファイルを読み取り、マッピングし、削減します

分類Dev

テキストファイルから特定のデータを読み取り、結果を計算します

分類Dev

ストリームリーダーを使用してテキストファイルを読み取り、各行を特定の形式で表示しますか?

Related 関連記事

  1. 1

    Cでテキストファイルを読み取り、最初の行をスキップします

  2. 2

    ヘッダーしかない場合はファイルの読み取りをスキップし、MultiResourceItemReaderを使用してヘッダーとデータを含む残りのファイルの読み取りを続行しますか?

  3. 3

    以下のアプローチでコアJavaを読み取りながら、CSVファイルのヘッダーをスキップします

  4. 4

    テキスタイルのbegand end()括弧内のテキストを検索し、バッファーに読み取り/印刷します。Cで

  5. 5

    CSVファイルを読み取って検索し、複数のテキストボックスにロードし直します(ヘルプ/混乱)

  6. 6

    テキストファイルの読み取り中に特定の行数をスキップする-BufferedReaderJava

  7. 7

    Spark2.3.0ヘッダーオプションが機能しないテキストファイルの読み取り

  8. 8

    テキストファイルの読み取り中にVBが行をスキップする

  9. 9

    テキストファイルリーダーは最初の行のみを読み取ります

  10. 10

    2行目からファイルを読み取るか、ヘッダー行をスキップします

  11. 11

    txt ファイルの最初の 4 行をスキップし、残りを分割して読み取ります

  12. 12

    フラットテキストファイルを読み取り、Pythonを使用してパターンの特定のリストを置き換えます

  13. 13

    テキストファイルの内容を読み取り、単語のインデックスを値に返すプログラムを作成します

  14. 14

    Sparkデータフレームはヘッダーなしでテキストファイルを読み取ります

  15. 15

    zcatは、圧縮ファイルからの読み取り中に最初の行のストリーミングをスキップします

  16. 16

    数値のテキストファイルを読み取り、C ++で整数の配列に格納します

  17. 17

    テキストファイルを読み取り、それらのファイルのみを別のフォルダに移動します

  18. 18

    テキスト処理-2つのテキストファイル:1つのファイルからブロック行を読み取り、別のテキストファイルの文字列の後に追加します

  19. 19

    テキストファイルからリストボックスC#までのすべての行を読み取ります

  20. 20

    Cでテキストファイルを読み取り、行を複数の変数に分割します

  21. 21

    テキストファイルを読み取り、c#でテキストファイルの要素に個別にアクセスします

  22. 22

    テキストファイルを読み取るときに最後のx行をスキップする

  23. 23

    電子メールのテキストファイルを読み取り、Javamail MimeMessageに変換します

  24. 24

    Automatorを使用してテキストファイルを読み取り、コンテンツを別のフォルダーにコピーします

  25. 25

    JOptionPaneからユーザーの入力を読み取り、テキストファイルに保存します

  26. 26

    Pythonスクリプトのパフォーマンスの問題:テキストファイルを読み取り、重複を削除します

  27. 27

    PySpark:newAPIHadoopFileを使用して、複数行のレコードテキストファイルを読み取り、マッピングし、削減します

  28. 28

    テキストファイルから特定のデータを読み取り、結果を計算します

  29. 29

    ストリームリーダーを使用してテキストファイルを読み取り、各行を特定の形式で表示しますか?

ホットタグ

アーカイブ