プログラミング

(c言語)日本語の%cによる表記

macで日本語を%cを使って躓いたことの備忘録です。。 日本語は英語とは異なり、マルチバイトを要求します。 そのため、 str[]="あいう"; printf("%c%c",str[0],str[1]); 他のサイトでよく見かける書き方。 しかし、macで実行すると、うまく表示できない。 そ…

# (c言語)変な文字が出力される。

状況 printfで出力した際に最後の方に変な文字(,�,p���U)が出力された。 原因 printf("%s")で終わりが見つからず領域外の文字まで出力している。 <詳細> printf("%s")は'\0'を見つけたら終わるという仕組みになっているが、配列を作る際にchar a[10]のように…

(Rails) ダウングレードする7.0.3.1 -> 6.1.6.1

Railsでダウングレードする。 状況 諸事情によりrailsのバージョンを7.0.3.1から6.1.6.1に変更する必要があった。(6.1.4を入れたかったが、6.1.4を指定しても7.0.3.1が入ってしまった。) 各アプリケーションに移動する。 cdコマンドで各アプリケーションに移…

(Rails) エラーを読んでみよう

rails のエラーについて railsで何かプログラムを作っていると、様々なエラーに直面すると思います。 そこでエラーの意味と怪しい場所について説明します。 今回説明する怪しい部分、対策法は一例ですので、必ずにもその部分を直した結果エラーが改善すると…

(c言語)2次元配列を作る(malloc対応)

状況 2次元配列の仕組みの振り返り 要素数nに対してmallocをどのようにしたらできるのかの備忘録 1次元配列 void main(){ int i; int a[2]={1,2}; for(i=0;i<2;i++){ printf("a[%d]=%d\n",i,a[i]); } } a[0]=1 a[1]=2 2次元配列 int i,j; int a[2][3]={{1,2,…

(MIPS) 初学者向け SIPMで領域を扱う

内容 データセグメントにてメモリ(領域)を確保する際に、その扱い方をします。 (つまり、グローバル変数でメモリ(領域)を定義します。) メモリに対して使う主な命令(32bit機とする,64bit機なら1Word=8byte) 命令 使用例 意味 la la $rt,即値($rs) $rtに$rsの…

(MIPS)アセンブリ言語でポインタを操る

状況 アセンブリ言語をやっていて、領域に対しての操作が複数あり、特にループ文の中でポインタを操る方法をまとめました。 言葉で説明すると、データセグメントで、領域を確保し、その後、テキストセグメントで命令を実行します。 .data s: .space 20 #領域…

(c言語)リングバッファのキューの無駄をなくす

状況 リングバッファのキューは先頭に戻す処理時に1つ無駄ができることを知ったので、改善策を考えた。(enqueueのみ) リングバッファのキューとは リングバッファのキューは、キューの限界に領域まで達したら、先頭に戻すことでデキューをタイミングよくすれ…

(c言語)ポインタを用いたリスト

ココでは主に挿入と削除について話します。(最後に作成したものをチェックするprintも紹介します。) 単方向リスト 双方向リスト 単方向リスト 単方向リストとは 単方向リストは下の図のようなもので、1つのリストが次の行先のみを知っているようなものです。…

(C言語)文字配列と文字列の違い。

フォーマット演算子等についての違いが知りたい方は、以下の記事で書いてますので是非参考にしてみてください。 bluecat314.hatenablog.com 始めに 上の記事で int array [ ] ≒int* arrayと説明し、 ニアリーイコールがついていますがこのことについて話しま…

(C言語)2重ポインタについて

2重ポインタについて少しですがわかりやすくまとめて置きます。 そもそもポインタとは、 変数を定義したときに変数はアドレスというものを持っていて、その別名として変数名があるような形になっています。 このアドレスをつかさどるのがポインタです。 ポイ…

(C言語) 配列宣言の仕方([] *)

C言語の配列 c言語の配列で1年弱でようやく理解したのでまとめました。 配列のキャストについて printf時のフォーマット指定子 配列のキャスト 軽いまとめ int array≒int* array char array≒char* array [] , *をすることでキャストを宣言します。 補足 キャ…

(Rails) deviselogin出来ないときの対処法(devise)

状況 sign upはできるがloginができない。 (Sign upはname,email,passwordで登録し、Log in時はname,passwordで認証する。) 原因 ストロングパラメーターは設定していたが、/config/initializers/devise.rbのほうを変えていなかった apprication_controller …

(Rails) @book.user_idと@book.userの違い

model book user id id book name user_id 注意::userとbookには1:Nの関係がある。 状況 この時、bookからuserを指定する時に2通りの書き方ができるように思える。 @book.user_idと@book.userである。(@bookにはidが1つの入る) しかし、これらは異なるもの…

(Rails) form_with modelではなくform_with urlを使いこなす

状況 投稿機能を作った際にcontrollerの中でindexとcreateの2つの部分でmodel名.newが使われていた。 また、全てのviewのアクションに対して、model名.newを用意するのが面倒である(before_action等を使えば防げるが...) これは「rbの基本として、重複は避け…

(Rails)全てのviewで使えるインスタンス変数の作成

状況 application_controllerにてインスタンス変数を定義したがうまく引き継がれない controller class ApplicationController < ActionController::Base @variable='10' end 原因 コールバック(before_action)をしていなかったため。 実施したこと メソッド…

(Rails)インスタンス変数を数値として扱い演算する

状況 インスタンス変数を用いて演算したが想定外の結果となった。 controller def about @variable=10 end views <%=@valiable.to_i +2%> 表示結果 2 欲しい値は12であるが、2と表示。 .to_iと+2の間に空白があるのが原因と思い、なくしてみた。 view <%=@va…

(Rails)インスタンス変数が表示されない

状況 インスタンス変数を定義し、viewの方で変数をそのまま表示しようとしたがうまく生じされなかった。 controller def about @variable=10 end views <%=@valiable%> 考えられた原因 表示する部分の構文ミス インスタンス変数に値がうまく入っていない 実…