質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

0回答

1936閲覧

visual studioのコンパイルエラーについて

Takagenki

総合スコア0

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2021/05/04 17:53

基本情報技術者試験の過去問を解いています。
以下をvisual stdio communityで動作確認したところエラーメッセージがでます。
その理由が分かりません。

エラー内容;
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) E0144 型 "const char [14]" の値を使用して型 "char [13]" のエンティティを初期化することはできません Project3 C:\Users\takas\source\repos\Project3\Project3\pro3.cpp 78

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2117 'chg': 指定された配列には、初期化子が多すぎます。 Project3 C:\Users\takas\source\repos\Project3\Project3\pro3.cpp 81

===CODE====

#include<stdio.h>
#include<string.h>

#define RSIZ 5
#define CSIZ 13
void enc_str(char[], char[RSIZ][CSIZ]);
void enc_str(char str[], char xchg_t[RSIZ][CSIZ]) {
int cp[2], rp[2], pos[2],
flg, i = 0, col, row, p = 0;

/* 動作確認用に追加 */ unsigned int alpha = 0, beta = 0; while (str[p] != '\0') { flg = 0; for (row = 0; row < RSIZ; row++) { for (col = 0; col < CSIZ; col++) { if (str[p] == xchg_t[row][col]) { flg = 1; break; } } if (flg != 0) break; } if (flg != 0) { /* 動作確認用に追加 */ alpha++; printf("α %d回目:col = %d, row = %d\n", alpha, col, row); cp[i] = col; rp[i] = row; pos[i++] = p; if (i == 2) { if (str[pos[0]] == str[pos[1]]) { str[pos[0]] = str[pos[1]] = xchg_t[(rp[0] + 1) % RSIZ] [(cp[0] + 1) % CSIZ]; } else { if (rp[0] == rp[1]) { str[pos[0]] = xchg_t[rp[1]][cp[1]]; str[pos[1]] = xchg_t[rp[0]][cp[0]]; } else if (cp[0] == cp[1]) { str[pos[0]] = xchg_t[rp[0]] [(cp[0] + 1) % CSIZ]; str[pos[1]] = xchg_t[rp[1]] [(cp[1] + 1) % CSIZ]; } else { str[pos[0]] = xchg_t[rp[1]][cp[0]]; str[pos[1]] = xchg_t[rp[0]][cp[1]]; } } i = 0; /* 動作確認用に追加 */ beta++; printf("β %d回目:str=%s\n cp[0] = %d, cp[1] = %d, rp[0] = %d, rp[1] = %d\n pos[0] = %d, pos[1] = %d\n" , beta, str, cp[0], cp[1], rp[0], rp[1], pos[0], pos[1]); } } p++; } if (i != 0) { str[pos[0]] = xchg_t[RSIZ - 1 - rp[0]][CSIZ - i - cp[0]]; }

}
int main(int argc, char* argv[]) {
int i;
char str[512];
char chg[RSIZ][CSIZ] = {
"abcdefghijklm",
"nopqrstuvwxyz",
"0123456789,. ",
"ZYXWVUTSRQPON",
"MLKJIHGFEDCBA"
};
if (argc != 2) {
printf("文字列を引数として入力してください\n");
return -1;
}

strcpy(str, argv[1]); printf("平文 :%s\n", str); enc_str(str, chg); printf("暗号文:%s\n", str); return 0;

}

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/05/04 22:09

このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
jbpb0

2021/05/05 01:07

c++のコードの一番最初の行のすぐ上に ```c++ だけの行を追加してください また、c++のコードの一番最後の行のすぐ下に ``` だけの行を追加してください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問