- ベストアンサー
テキスト→配列化→ソートをしたいのですが
テキストファイル:test.txt 内容:カンマで区切られた数値で最大20個 を読み込んで配列に組み込んでその配列を昇順ソートする。 と言うC言語の課題が内定先の企業より出題されたのですが 今まではC#やデータベース中心だったので 全く解らず困っています。 #include <stdio.h> int main(void) { /* ファイルポインタ */ FILE *fp; int f; fp = fopen( "test.txt", "r" ); if( fp == NULL ) { puts( "test.txtが開けません" ); return 1; } while( 1 ) { f = fgetc( fp ); if( ferror( fp ) ) { /* fgetc関数に対するエラーチェック */ puts( "読み込み中にエラーが発生しました" ); fclose( fp ); return 1; } else if( feof( fp ) ) { break; } printf( "%c", f ); } printf( "\n" ); fclose( fp ); return 0; } } 他のサイト等を参考にファイルを読み込むまでは出来たのですが そこから先が全くわかりません・・・・orz どうかよろしくお願いしますm(_ _)m
- みんなの回答 (4)
- 専門家の回答
お礼
まだ出来たわけではありませんがありがとうございました。
補足
>(回答の冒頭部分しか見てもらえず・・残念)。 すみません・・・・ ------------------ 補足 textファイルの中身を詳しく記載させるのを忘れてました。 10,5,2,9,8,3,4,1,16,30,87,53,23,92,64,32,9,7,18,20 ------------------ と言う事は #include<stdio.h> #include<stdlib.h> #include<string.h> void main( void ) { int iVal[ 39 ];// 「配列」 int nn = 0, i; char cBuf[ 256 ];// ファイル1行模倣 char *p; /* ファイルポインタ */ FILE *fp; fp = fopen( "test.txt", "r" ); if( fp == NULL ) { puts( "test.txtが開けません" ); return 1; } // ファイル1行入力 p = cBuf; while( NULL != ( fgets( cBuf, 256, fp ) ) ) {// 切り分け iVal[ nn++ ] = atoi( fgets );// 数値化 p = 0x00; for( i = 0; i < nn; i++) printf( "%d\n", iVal[ i ] ); } fclose(fp); } でよろしいのでしょうか?