#c #arrays #file #matrix
#c #массивы #файл #матрица
Вопрос:
Я знаю, что на этот вопрос уже отвечали и задавали раньше, но я не совсем понимаю ответы, приведенные в этих сообщениях, поэтому я чувствую, что у меня нет другого выбора, кроме как задать его самому. Это определенно вопрос для начинающих, поэтому, пожалуйста, отнеситесь ко мне терпеливо и не усложняйте, если это не является абсолютно необходимым.
Что я хочу сделать, так это прочитать матрицу 2×3 из файла .txt, например
12 14 15
24 244 988
а затем сохраните его в 2D-массиве, назовем его «array», так что array [0] [0] будет = 12, а array [1] [1] = 244 и т.д..
То, что я придумал до сих пор, это просто:
for (int a = 0; a < 2; a ) {
for (int b = 0; b < 3; b ) {
fscanf_s(stream, "%d", array[a][b]);
}
}
Он компилируется, но затем выходит из строя, поэтому я не уверен, что именно не так. Он и компилируется, и работает отлично, если я удалю это утверждение fscan_s, поэтому проблема должна быть там.
Любая помощь будет принята с благодарностью. Спасибо!
Комментарии:
1.
fscanf_s(stream, "%d", array[a][b]);
вы забылиamp;
—>fscanf_s(stream, "%d", amp;array[a][b]);
2. попробуйте вот так amp;array[a][b]
3. Вау, это было так просто… Большое спасибо! Отправьте его как ответ, чтобы я мог его принять! 😉
Ответ №1:
Он компилируется, но затем выходит из строя
Вы должны использовать адрес массива в scanf
виде
fscanf_s(stream, "%d", amp;array[a][b]);