これは私が持っているコードです。画像を印刷する機能と、反転する機能の2つの機能があります。私はポインタと配列では良くない。関数は配列を返さないので、私はポインタとして配列を返さなければならないことを理解しています。だから、私はどちらが間違いか分からない。私は関数を使わずにそれを行う方法を知っていますが、別の関数でそれを行う必要があります。私は画像を印刷するとき(はい、それはピカチュウです)、私はファイルから保存し、正しく保存されているかどうかを確認するために印刷しますが、それを反映すると、いくつかのランダムな文字が印刷されます。これはピカチュウです。「イメージ反映」プログラム(実際のイメージではなく、文字で描かれた図面を反映します)
so
sNm
.yhyo/-` yNNN
`sNNNNh:-.` :sdNN
.yNNh:::::-. -:::/s
.sh::::::::-. `:::::-
`.:/::::::::. ` -:::::.
`.-:/:::::::::::::-.` ::::::
``-:::::::::::::::-.::::/.
.:::::::::::::::::::::/:
.::oh//:::::::::::::::::`
.:::ymy+::::::::::::::::.
.oo:::::::::/:::::o/yo::/
`ooo/::::+osss+::::ommo::-
`oo+:::::++///oyo:::::::/`
-/::::::/:::::+/:::::/++.--::::.
``.:/:::::/::::/:::::/ooo+:::::::/`
`-::::::::::::/:/:::::::+oo/:::::://:```
`/::::::::::::/:::::::/::/::::::::/::::::::::--.`
::::::::::::://:::::::::::::::::/:::::::::::::::::--.`
`:///:::::////::::::::::::::/:. :::/:::::::::::::::::::`
`-/////:::::::::::::::://:. .:://///::::::::::::::.
:::::::::::::::::::::::` :://///////::::::::-.
-::::::::::::::::::::::. ----:://: `.--::/::-`
.:::::::::::::::::::::::` :/::::/- ``
`::::::::::::::::::::::::. :+/--:.
-::::::::::::::::::::::::+ossy
/:::::::::::::::::::::::::/:/+
`/::::::::::::::::::::::::::`
.//////:::::://///:::::::::`
`-//::////...````.---::////:/-.
`.-...`` .-::/::/:.
``.-.
それは、これを印刷:
os
mNs
NNNy `-/oyhy.
NNds: `.-:hNNNNs`
s/:::- .-:::::hNNy.
-:::::` .-::::::::hs.
.:::::- ` .::::::::/:.`
:::::: `.-:::::::::::::/:-.`
./::::.-:::::::::::::::-``
:/:::::::::::::::::::::.
`::::::::::::::::://ho::.
.::::::::::::::::+ymy:::.
/::oy/o:::::/:::::::::oo.
-::ommo::::+ssso+::::/ooo`
`/:::::::oyo///++:::::+oo`
.::::--.++/:::::/+:::::/::::::/-
`/:::::::+ooo/:::::/::::/:::::/:.``
```://::::::/oo+:::::::/:/::::::::::::-`
`.--::::::::::/::::::::/::/:::::::/::::::::::::/`
.--:::::::::::::::::/::::::::::::::::://:::::::::::::
:::::::::::::::::::/::::。/ ::::: :::::::::://// ::::: ///: .:::::::::::::://///::. .://:::::::::::::::://///-
.- ::::::::////////// :::::::::::l▌
w£ⁿrtÉX ║║P
0 ¡ⁿrt
╗ É ::::
╗ h╗
-/::::/: `:::::::::::::::::::::::. |▌`wyæst X╗` ╪╗` Ü╪«$ ä╗` ╛·rt @╗` ╚╓` P╓vt╩Q│P■ É╓` 9▌⌠v ╪╗` ░╗` ╟α⌠v:::: $ ╫` ╫` +/:/:::::::::::::::::::::::::/ `::::::::::::::::::::::::::/` `::::::::://///:::::://////. .-/:////::---.````...////:://-` .:/::/::-.
...-。 `
causiは何ですかこれは、逆のchar配列を送信して保存する方法であると確信しています。しかし、私はそれをどのように修正するか分かりません。
#include<stdio.h>
#include<string.h>
#define S 100
char** Reverse(char str[S][S],int i);
void printImage(char str[S][S],int i);
int main()
{
int i=0;
FILE *fp;
char buf[S],buf2[S][S],**refpic;
fp = fopen("pikachu.txt","r");
while(fgets(buf, 100, fp) != NULL)
{
strcpy(buf2[i],buf);
i++;
}
fclose(fp);
printImage(buf2,i);
refpic=Reverse(buf2,i);
strncpy(refpic,buf2,S);
printImage(refpic,i);
return 0;
}
char** Reverse(char str[S][S],int i)
{
int a=0,b=0;
char refpic[S][S];
for(a=0;a<i;a++)
{
for(b=0;b<100;b++)
{
refpic[a][b]=str[a][99-b];
}
}
return refpic;
}
void printImage(char str[S][S],int i)
{
int a=0,b=0;
for(a=0;a<i;a++)
{
for(b=0;b<100;b++)
{
printf("%c", str[a][b]);
}
}
}
へようこそスタックオーバーフロー!デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。さらに読む:[小さなプログラムをデバッグする方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –