Cプログラムは、MATLABからエクスポートされたファイルの「\ n」を認識しません

アンナ

以下をG使用してテキストファイルに出力したMATLABの行列があります。

file = fopen('G.dat','w');
fprintf(file, [repmat('%f\t', 1, size(G, 2)) '\n'], G'); 
fclose(file);

この行列の次元は100x 500です。たとえば、awkを使用して行と列を数える場合、

cat G.dat | awk '{print NF}END{print NR}' 

寸法が元の寸法に対応していることがわかります。

ここで、次のように列の次元を理解するためだけに、最初の行の列をカウントするCプログラムからこのファイルG.datを読み取りたいと思います。

    while (!feof(file) && (fscanf(file, "%lf%c", &k, &c) == 2) ) {
        Ng++; 
        if (c == '\n') 
            break;
}

残念ながら、Ng = 50000になり、「\ n」を認識しません。代わりに、データをコピーして貼り付けるだけでテキストファイルを作成すると、機能します。理由を説明してもらえますか?ありがとう!

chux-モニカを復活させる

コードのアプローチは脆弱すぎて、「列の次元を理解するためだけに最初の行の列を数える」ことはできません。fscanf(file, "%lf%c"...バリアントの空白区切り文字とEOLの影響を受けやすく、を検出できません'\n'

空白を明示的に調べて幅を決定することをお勧めします。

// return 0 on success, 1 on error
int GetWidth(FILE *file, size_t *width) {
  *width = 0;
  for (;;) {
    int ch;
    while (isspace(ch = fgetc(file))) {
      if (ch == '\n') return 0;
    }
    if (ch == EOF) return 0;
    ungetc(ch, file);
    double d;
    if (fscanf(file, "%lf", &d) != 1)) {
      return 1;  // unexpected non convertible text
    }
    (*width)++;
  }
}

//Sample, usage
size_t width;
if (GetWidth(file, &width)) return 1;

// read entire file
rewind(file);
for (size_t line = 0; foo(); line++)
  for (size_t column = 0; column<width; column++) {
    double d;
    if (fscanf(file, "%lf", &d) != 1)) {
      break;  // EOF, unexpected non convertible text or input error
    }
  }
  ...
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

IntelliJ IDEAは、サブプロジェクトのprotobufファイルから生成されたクラスを認識しません

分類Dev

ターミナルはインストールされたプログラムを認識しません

分類Dev

ターミナルはインストールされたプログラムを認識しません

分類Dev

'npm start'スクリプトでエラーが発生するのはなぜですか: '。' 内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。

分類Dev

react-native 'インストールはエラーを生成します-'react-native'は内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません

分類Dev

PowerShell:エラーの受信「用語「...」は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません」

分類Dev

プログラムにテキストファイルの「\ n」を改行コードとして認識させる方法はありますか?

分類Dev

gemをインストールできません-makeは内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されません

分類Dev

直し方 ''。' 内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。何かキーを押すと続行します 。。。」geanyのエラー?

分類Dev

GitHubは、元に戻されたプルリクエストからの変更を認識しません

分類Dev

SSHはスクリプト内で機能せず、エラー「ssh」が内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません

分類Dev

TypeScriptコンパイラはエクスポートされたクラスを認識しません

分類Dev

AndroidはインクルードされたファイルからIDを認識しません

分類Dev

指定された場所から.basファイルをインポートしている間、Visual BasicProjectへのプログラムによるアクセスは信頼されません

分類Dev

django-ショートカットコマンドプロンプトエラー「C:\ Program」は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません

分類Dev

jUnitテストは、複製されたNetbeansプロジェクトのソースファイルを認識しません

分類Dev

UbuntuはWacomBambooEraserを認識しません

分類Dev

Pythonはpygraphvizを認識しません

分類Dev

Pythonはpygraphvizを認識しません

分類Dev

std :: regexは$を認識しません

分類Dev

TCPDFは$ _POSTを認識しません

分類Dev

VHDLQuartusは「+」と「-」を認識しません

分類Dev

Liquidsoapはalsaを認識しません

分類Dev

TensorFlowLiteはopVarHandleOpを認識しません

分類Dev

UbuntuはWacomBambooEraserを認識しません

分類Dev

Netbeansはxercesimplを認識しません

分類Dev

Netbeansはxercesimplを認識しません

分類Dev

perl DBIexecuteは「?」を認識しません

分類Dev

QRegExpは式を認識しません

Related 関連記事

  1. 1

    IntelliJ IDEAは、サブプロジェクトのprotobufファイルから生成されたクラスを認識しません

  2. 2

    ターミナルはインストールされたプログラムを認識しません

  3. 3

    ターミナルはインストールされたプログラムを認識しません

  4. 4

    'npm start'スクリプトでエラーが発生するのはなぜですか: '。' 内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。

  5. 5

    react-native 'インストールはエラーを生成します-'react-native'は内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません

  6. 6

    PowerShell:エラーの受信「用語「...」は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません」

  7. 7

    プログラムにテキストファイルの「\ n」を改行コードとして認識させる方法はありますか?

  8. 8

    gemをインストールできません-makeは内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されません

  9. 9

    直し方 ''。' 内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。何かキーを押すと続行します 。。。」geanyのエラー?

  10. 10

    GitHubは、元に戻されたプルリクエストからの変更を認識しません

  11. 11

    SSHはスクリプト内で機能せず、エラー「ssh」が内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません

  12. 12

    TypeScriptコンパイラはエクスポートされたクラスを認識しません

  13. 13

    AndroidはインクルードされたファイルからIDを認識しません

  14. 14

    指定された場所から.basファイルをインポートしている間、Visual BasicProjectへのプログラムによるアクセスは信頼されません

  15. 15

    django-ショートカットコマンドプロンプトエラー「C:\ Program」は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません

  16. 16

    jUnitテストは、複製されたNetbeansプロジェクトのソースファイルを認識しません

  17. 17

    UbuntuはWacomBambooEraserを認識しません

  18. 18

    Pythonはpygraphvizを認識しません

  19. 19

    Pythonはpygraphvizを認識しません

  20. 20

    std :: regexは$を認識しません

  21. 21

    TCPDFは$ _POSTを認識しません

  22. 22

    VHDLQuartusは「+」と「-」を認識しません

  23. 23

    Liquidsoapはalsaを認識しません

  24. 24

    TensorFlowLiteはopVarHandleOpを認識しません

  25. 25

    UbuntuはWacomBambooEraserを認識しません

  26. 26

    Netbeansはxercesimplを認識しません

  27. 27

    Netbeansはxercesimplを認識しません

  28. 28

    perl DBIexecuteは「?」を認識しません

  29. 29

    QRegExpは式を認識しません

ホットタグ

アーカイブ