ヌービーアラート。うーん。<stdio.h>
または<fstream>
. _ どちらも非常に扱いにくく、直感的に使用できないようです。つまり、なぜ C++char*
はファイルの最初の char へのポインタを取得する方法を提供できなかったのでしょうか? 私が望むのはそれだけです。
Project Euler Question 13をやっていて、50 桁の数字で遊ぶ必要があります。ファイルに 150 個の数字が保存されており13.txt
、各数字の数字を直接操作できるように 150x50 の配列を作成しようとしています。しかし、私はたくさんの問題を抱えています。私は C++<fstream>
ライブラリを使用してみましたが、最近はすぐ<stdio.h>
にそれを完了できましたが、何かがクリックされていないに違いありません。これが私が持っているものです。
#include <iostream>
#include <stdio.h>
int main() {
const unsigned N = 100;
const unsigned D = 50;
unsigned short nums[N][D];
FILE* f = fopen("13.txt", "r");
//error-checking for NULL return
unsigned short *d_ptr = &nums[0][0];
int c = 0;
while ((c = fgetc(f)) != EOF) {
if (c == '\n' || c == '\t' || c == ' ') {
continue;
}
*d_ptr = (short)(c-0x30);
++d_ptr;
}
fclose(f);
//do stuff
return 0;
}
誰かアドバイスをいただけますか?おそらく、どの I/O ライブラリを好む C++ の人でしょうか?