Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: 程式設計

Compile and Execute Java Programs

Posted on 2007 年 2 月 26 日2021 年 3 月 12 日 By 日落 在〈Compile and Execute Java Programs〉中有 3 則留言

決定目前先不要偷懶用 Eclipse,還是用記事本慢慢 keyin 比較實在。

Java 是物件導向為主的語言,對語法上的要求也比 C++ 高出許多。首先來寫一個只有 5 行的 Hello World 程式。

public class test {
public static void main(){
System.out.println("Hello World");
}
}
存檔時記得要把檔名存成:test.java。在 Java 中,檔名是代表檔案中撰寫的 class 名稱,當檔名與程式中的 class 名稱不同時,編譯器便會出現錯誤訊息。

假設我把檔案存在 C:Java 底下,現在要編譯程式時,只要在命令提示字元中鍵入:

javac c:javatest.java

要打入絕對位址。編譯器編譯過會產生一個 test.class 檔,轉成 class 檔以後就可以執行看結果了:

java test

Tags:Java, 程式設計

C++ 輸入無限長度的字串

Posted on 2007 年 2 月 15 日2021 年 3 月 12 日 By 日落 在〈C++ 輸入無限長度的字串〉中有 6 則留言

通常我們都是把字串存在一個陣列當中,但是我們卻不知到使用者到底會輸入多長的字串,只能宣告成一個非常大的陣列,這樣不但沒有解決問題而且還浪廢掉不少空間。

下面程式碼,是使用動態記憶體配置來即時更改陣列大小,當陣列不夠大時,變會將陣列長度增加 10。

//編譯器:Dev-C++ 4.9.9.2

#include <iostream>
#include <cstdlib>
#include <conio.h>

using namespace std;

int main()
{
char *ch,*tmp;
char in;
int count=10,num=0;
// count紀錄陣列大小 num紀錄用掉的空間
int a;
ch = new char [count];
in = getch();
while( in != 'r' )
{
if( num >= count ) // 檢查陣列是否過小
{
tmp = new char [count+10]; //建立比原本大10的陣列
for(a=0;a<count;a++) //複製舊的陣列內容
tmp[a] = ch[a];
delete [] ch; // 刪除舊的資料
ch = tmp; // 繼承新的資料
count+=10;
}
num++;
ch[num-1] = in;
cout<<ch[num-1];

in = getch();
}
ch[num] = '';
cout<<endl<<endl<<ch<<endl<<endl;
system("pause");
return 0;
}

程式執行時,會先讀入字串直到使用者按下 Enter,接下來會把使用者輸入的字串重新再印出來。另外程式是使用 getch() 來讀取字串輸入,所以不必擔心作業系統給的暫存不夠大。

Tags:程式設計, 資訊學習

Get user IP in PHP

Posted on 2006 年 8 月 17 日2021 年 3 月 12 日 By 日落 在〈Get user IP in PHP〉中有 1 則留言

2012/09/30 更新:
以下內容不正確,請使用 $_SERVER[‘REMOTE_ADDR’] 取得使用者 IP 位址。

詳細請見:http://stackoverflow.com/questions/3003145/how-to-get-client-ip-address

CYJ 不要黑我啊 T口T


一般在取得使用者 IP 都是利用 $_SERVER[‘REMOTE_ADDR’] 這個環境變數,但是此變數只會紀錄最後一個主機 IP,所以當使用者瀏覽器有設定 Proxy 時,就無法取得他的真實 IP。

這時可以使用另一個環境變數 $_SERVER[‘HTTP_X_FORWARDED_FOR’] ,它會紀錄所經過的主機 IP,但是只有在使用者有透過 Proxy 時才會產生,所以可以像以下這樣寫來取得使用者真實 IP。

<?php
if (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$myip = $_SERVER['REMOTE_ADDR'];
} else {
$myip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$myip = $myip[0];
}
echo $myip;
?>
Tags:PHP, 程式設計

PHP 中使用不同編碼連接 MySQL

Posted on 2006 年 7 月 23 日2021 年 3 月 12 日 By 日落 在〈PHP 中使用不同編碼連接 MySQL〉中尚無留言

MySQL 4 以後
似乎都會對所有欄位作編碼校對

不管你的 PHP 檔案編碼是 Big5 或是 UTF-8
使用 SQL 語法傳回來的中文資料都會變成亂碼

因此在資料庫連結成功以後
再加上一段語法

mysql_query("set names 'utf8' ");

namse 後面設定你使用的編碼
看是 big5 還是 utf8
這樣傳回來的資料就會和你網頁的編碼相符了

Tags:PHP, 程式設計, 資訊學習

Year 2038 Problem

Posted on 2006 年 7 月 22 日2021 年 3 月 12 日 By 日落 在〈Year 2038 Problem〉中尚無留言

在 C 語言裡面,時間是以一個有號的整數儲存。若是呼叫 time() 函式,則會回傳一個整數,這個整數代表:從格林威治時間 1900 年 1 月 1 日 0 時 0 分 0 秒到現在時間的秒數。

標準的C語言編譯器中,整數 int 的大小為 232,因為是有號數,所以整數的範圍是從 -231 到 231-1。

距離1900年越久,time()函數所傳回的秒數也會越大,當超過 231-1時,就會產生溢位(over flow),此時計數器就會發生問題。而 231-1 為 2147483647,正是到 2038 年 1 月 19 日的秒數,所以那些以C語言為主撰寫出來的作業系統,如:Unix,都會掛彩。

參考資料:
http://en.wikipedia.org/wiki/Year_2038_problem
http://computer.howstuffworks.com/question75.htm

Tags:程式設計, 資訊學習

文章分頁

上一頁 1 ... 13 14 15 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.