香港世界宣明会
广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 11782 个阅读者
 
<< 上页  1   2   3  下页 >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 csr 于 2011-05-17 10:07 发表的 : 到引言文
说真的
大大若不提起
小弟还真不好再请教大大
因为所学还不是了解
所以再试还是无法开启
小弟又不晓得怎么请教发问
所以至今还是无解
另外大大所说debug设定中断点
小弟实在也不知要怎么作
所以这问题小弟就暂放下
等再一次覆习后看能不能把它完成
小弟在此感谢大大指示一个方向
我会努力去作看看
谢谢大大您地指导

关于dev-c debug使用请参考下面连结(关键字:dev-c 中断点)
http://ez2learn.com/index.php/c-tut...3-dev-cdebugger

visual studio (也可以直接点要设中断的那一行前面):
http://msdn.microsoft.com/...ry/15d1wtaf(v=vs.80).aspx

不了解的话,就多想~

想不通的话,就把想不通的部分拿出来问~如果可以把您的想法说出来,或许有人可以帮您找出您的盲点~

要想过才会知道可能的问题在那边噜XDD

如果上述的步骤您都有做到,那么可能就要再看问题出在那边噜~

有时候,还真的要脸皮厚一点,才比较问的到东西。XD

但不是摆烂的脸皮厚喔..XDD



恩...
献花 x0 回到顶端 [10 楼] From:台湾中华电信股份有限公司 | Posted:2011-05-17 10:21 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

依大大po地网页
该程式只能执行到底下
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, char* argv[])
{
FILE *fp;
char ch;
int isword, i;

if(argc != 2){
  printf("参数的个数错误。\n");
  return 1;
 
}
再来就无法开起了
要设专案它程现反白
无法设定
当中断点用到上面
有跑出视窗
参数错误
再往下设中断值行就跳不出视窗了
不知是何原故


献花 x0 回到顶端 [11 楼] From:台湾行政院研究发展考核委员会 | Posted:2011-05-17 11:25 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

有图吗?

上次有麻烦您去找有关command line的资料,不知您找的如何了呢?

希望wiki能帮上您的忙:
http://en.wikipedia.org/wiki/Command-line_interface

这段是用来判断进来的command line参数是否正确。从程式码看来他参数是传入档案路径。
复制程式
  if(argc != 2){
    printf("参数的个数错误。\n");
    return 1;
  }

这边是将传入的档案打开,失败的话就离开。
复制程式
  fp = fopen(argv[1], "re");
  if(fp == NULL){
    printf("无法开启档案。\n");
    return 1;
  }

所以用debug的确会从第一个return就结束了,因为debug模式执行的时候,要自己设定传入的command line。

所以您最早说的不能执行,在下猜想,您应该有8成以上是直接点选程式没错八?

如您的操作方法是这样没错的话,那么可以使用命令提示字元来执行此程式,只是记得要给程式所以开启的档案路径。


恩...
献花 x0 回到顶端 [12 楼] From:台湾中华电信股份有限公司 | Posted:2011-05-17 21:42 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-05-17 21:42 发表的 : 到引言文
有图吗?
上次有麻烦您去找有关command line的资料,不知您找的如何了呢?
希望wiki能帮上您的忙:
http://en.wikipedia.org/wiki/Command-line_interface
这段是用来判断进来的command line参数是否正确。从程式码看来他参数是传入档案路径。
.......

有去查
但是说正格地
不大清楚command line它的内容
而参数小弟在除错时有用
但是执行上仍有问题
请教大大
小弟是要用dos方式来下命令吗
还是大大是其他意思
谢谢


献花 x0 回到顶端 [13 楼] From:局域网对方和您在同一内部网 | Posted:2011-05-18 09:43 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

那就看你要不要说说,你觉得那边看不清楚?

如果参数在除错的时候有用,那执行上是什么问题?

前面有说system("pause")加到return前面的东西,你可以把他编译成release版本。

这样就可以在执行时期看到跳出来的画面了。

是用dos的方式下命令没错。

dev-c也提供在debug模式下预先输入参数的部分。请参考下列连结 Step 5: Execute.
http://www.uniqueness-t...m/devcpp/

简单来说,command line就是我们在执行程式的时候,在执行档后面所打的参数。

系统会把那些参数透过argv[]来传给执行中的程式。

有玩过在捷径的执行档路径后面下参数吗?这就是那个东西。

如果您不会使用命令提示字元的话,用捷径来传入command line也是一个方法,只是使用后要删除,手续比较麻烦XD。

你可以去查一下ipconfig这个指令,一般讲解会顺便把传入的参数也解释一次,那个就是所谓的commnad-line参数。


[ 此文章被totsi在2011-05-19 08:55重新编辑 ]

此文章被评分,最近评分记录
财富:50 (by 三仙) | 理由: totsi 大真是佛心来的 ^^ 连我都受教了


恩...
献花 x1 回到顶端 [14 楼] From:台湾中华电信股份有限公司 | Posted:2011-05-18 19:47 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

大大您好
小弟过去是玩硬体
所以在一些dos,cmd...等命令并不很清楚
因为不懂所以也不知怎么来跟大大请教
另外command line说明的理念真的小弟并不了解
就连大大说地(编译成release版本)小弟我也模糊了
真的很抱歉
让大大对小弟这样地学生可能会很烦
小弟在此先说一声对不起
不过
小弟现今一直在加强这方面的知识
希望以后可以比较正面的来跟大大讨教
谢谢


献花 x0 回到顶端 [15 楼] From:台湾行政院研究发展考核委员会 | Posted:2011-05-19 09:52 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 csr 于 2011-05-19 09:52 发表的 : 到引言文
大大您好
小弟过去是玩硬体
所以在一些dos,cmd...等命令并不很清楚
因为不懂所以也不知怎么来跟大大请教
另外command line说明的理念真的小弟并不了解
就连大大说地(编译成release版本)小弟我也模糊了
真的很抱歉
让大大对小弟这样地学生可能会很烦
小弟在此先说一声对不起
不过
小弟现今一直在加强这方面的知识
希望以后可以比较正面的来跟大大讨教
谢谢


小弟用命令提示字元去开档
还是只开出参数的个数错误
不知这程式码是无法执行吗
谢谢


献花 x0 回到顶端 [16 楼] From:台湾行政院研究发展考核委员会 | Posted:2011-05-19 10:31 |
三仙 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
头衔:以马内利 以马内利
版主
级别: 版主 该用户目前不上站
版区: 程式设计
推文 x17 鲜花 x370
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

图 1. 程式执行结果   
程式执行结果

图 2. Main 不传入第二 args 且修改程式开档参数   
Main 不传入第二 args 且修改程式开档参数

图 3. 修改并执行结果   
修改并执行结果



下面是引用 csr 于 2011-05-19 10:31 发表的 : 到引言文



小弟用命令提示字元去开档
还是只开出参数的个数错误
不知这程式码是无法执行吗
谢谢


挖出答案的难度,取决提问的深度!
献花 x2 回到顶端 [17 楼] From:台湾中华电信股份有限公司 | Posted:2011-05-19 15:41 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

首先,先感谢版大的花..XD

我只是比较鸡婆而已,虽然有些观念还有待加强~XDD

版大比较佛心~连图都有了...XD

我是比较懒惰,能用打字跟连结,就用打字跟连结的了。^^|||

================

您所找到的范例程式使用方式的确像是版大所提供的图的用法。

底下用版大提供的图来说明:

hello.exe是执行档名称。2是传入的第一个参数

所以argc会等于2(个参数)。

argv[0]是执行档路径。

argv[1]则是2。

----------------------------------------------------------
所以这个程式执行会遇到两个问题:
1.传入的参数数量不正确:
  问题:这样会让程式无法继续进行。
  原因:因为这个范例设定一定要传入档案路径才能继续执行。所以当传入的参数数
        量不对,就会结束程式。
  解法:在执行程式的时候,一并把档案路径传入。

2.找不到传入的档案路径:
  问题:程式无法处理找不到的档案的内容。
  原因:档案不存在。或者传入的参数不是档案路径。
  解法:给程式存在的档案路径,或是自行建立一个新档。

===========================

如上述说法还是不清楚,建议您,先把读写档单独处理(类似版大提供的方式)。

写个99乘法表档,然后档案路径先用介面输入或写死在程式内都可以。

等档案读写ok后,再来处理参数传入的问题,这样或许会比较快上手。

毕竟您提供的范例,一次包含了两样的观念(传入参数、档案读写),所以要完成练习,就必须先有这两样的观念。

不知您有没有玩过half life?

在要使用密技之前,需先修改捷径内容,把-console参数加到路径后面。
Ex: hl.exe -console

这边的-console就会被系统透过argv[]传给hl.exe。

当初在玩的时候,因为什么程式设计都不懂,就跟着说明照打而已。

后来接触多了,才知道那个原来就是command line parameter阿。XDD

PS.补充一下:
  在VC++的部分,argv[]存的是char*,所以实际上指向argv[0],是取出第一个位置的字串阵列。
  至于Dev-C++在下不熟,所以还要请其他高手补充噜。^^m


[ 此文章被totsi在2011-05-20 11:37重新编辑 ]


恩...
献花 x2 回到顶端 [18 楼] From:台湾中华电信股份有限公司 | Posted:2011-05-19 18:46 |
三仙 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
头衔:以马内利 以马内利
版主
级别: 版主 该用户目前不上站
版区: 程式设计
推文 x17 鲜花 x370
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 csr 于 2011-05-08 20:29 发表的 请问为何执行画面无法停住: 到引言文
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, char* argv[])
{
  FILE *fp;
  char ch;
  int isword, i;

  if(argc != 2){
    printf("参数的个数错误。\n");
    return 1;
  }

  fp = fopen(argv[1], "re");

  if(fp == NULL){
    printf("无法开启档案。\n");
    return 1;
  }

  i = 0; isword = 0;
  while((ch = fgetc(fp)) != EOF){
    if(isspace(ch) || ispunct(ch)){
      isword = 0;
    }
    else if(isword == 0){
      isword = 1;
      i++;
    }    
  }
  printf("单字数:%d\n", i);

  fclose(fp);

  system("pause");
  return 0;
}

.......


其实这个程式最有问题的地方
个人觉得是  fp = fopen(argv[1], "re");

1.为什么是 argv[1]  ?
    小弟记得 Dev-C++ 没有字串阵列,只有字元阵列;所以 argv[1]  代表一个字元,档案名称+副档名 都不祇一个字了
2.为什么是  "re"  ?
   详如存取模式的表格

图 1. 存取模式   
存取模式



挖出答案的难度,取决提问的深度!
献花 x2 回到顶端 [19 楼] From:台湾中华电信股份有限公司 | Posted:2011-05-20 09:52 |

<< 上页  1   2   3  下页 >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.067120 second(s),query:17 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言